
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

Image * OptimizePlusImageLayers(Image *image,ExceptionInfo *exception)

{
  uint *puVar1;
  size_t sVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  ssize_t x;
  ssize_t sVar7;
  DisposeType *pDVar8;
  Image *pIVar9;
  uint *memory;
  undefined4 *memory_00;
  MagickBooleanType MVar10;
  Image *image_00;
  Quantum *pQVar11;
  ExceptionInfo *exception_00;
  uint uVar12;
  DisposeType *pDVar13;
  size_t sVar14;
  uint uVar15;
  size_t sVar16;
  Image *pIVar17;
  Image *pIVar18;
  int iVar19;
  uint *puVar20;
  uint columns;
  int in_GS_OFFSET;
  bool bVar21;
  size_t sVar22;
  ExceptionType severity;
  char *tag;
  ExceptionInfo *in_stack_ffffff1c;
  ExceptionInfo *in_stack_ffffff20;
  Image *local_d8;
  uint local_d4;
  int local_cc;
  int *local_c8;
  uint local_b8;
  Image *local_a8;
  int local_a0;
  uint local_98;
  uint local_94;
  MagickBooleanType local_90;
  uint local_8c;
  uint local_80;
  longlong local_74;
  RectangleInfo local_5c;
  Image *optimized_image;
  RectangleInfo try_bounds;
  RectangleInfo local_30;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xfe649;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,
                  "OptimizeLayerFrames");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)
    ;
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,
                  "OptimizeLayerFrames");
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,
                  "OptimizeLayerFrames");
  }
  pIVar9 = GetFirstImageInList(image);
  if (pIVar9 == (Image *)0x0) {
LAB_000fe844:
    sVar22 = GetImageListLength(pIVar9);
    memory = (uint *)AcquireQuantumMemory(sVar22,0x20);
    if (memory == (uint *)0x0) {
      tag = "MemoryAllocationFailed";
      severity = ErrorException;
      sVar22 = 0x3ed;
    }
    else {
      sVar22 = GetImageListLength(image);
      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);
      if (memory_00 != (undefined4 *)0x0) {
        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);
        if (local_a8 != (Image *)0x0) {
          (local_a8->page).width = (pIVar9->page).width;
          sVar22 = (pIVar9->page).height;
          (local_a8->background_color).alpha = 0.0;
          (local_a8->page).x = 0;
          (local_a8->page).y = 0;
          (local_a8->page).height = sVar22;
          local_a8->dispose = NoneDispose;
          (local_a8->background_color).alpha_trait = BlendPixelTrait;
          pIVar17 = (Image *)exception;
          SetImageBackgroundColor(local_a8,exception);
          *memory_00 = 1;
          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,
                              (ExceptionInfo *)pIVar17);
          *memory = local_5c.width;
          memory[1] = local_5c.height;
          memory[2] = local_5c.x;
          memory[3] = local_5c.y;
          local_d8 = GetNextImageInList(pIVar9);
          if (local_d8 != (Image *)0x0) {
            pIVar18 = (Image *)0x0;
            local_cc = 1;
            pIVar9 = (Image *)0x0;
            do {
              puVar20 = memory + local_cc * 4;
              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,
                                  (ExceptionInfo *)pIVar17);
              *puVar20 = local_5c.width;
              puVar20[1] = local_5c.height;
              puVar20[2] = local_5c.x;
              puVar20[3] = local_5c.y;
              if (local_5c.x < 0) {
                local_c8 = memory_00 + local_cc + 0x3fffffff;
                *local_c8 = 1;
LAB_000fe9b6:
                if (local_cc == 1) {
                  image_00 = pIVar18;
                  if (pIVar9 == (Image *)0x0) {
LAB_000fef38:
                    local_a8 = DestroyImage(local_a8);
                    iVar19 = *local_c8;
                    if (iVar19 != 2) {
                      pIVar18 = image_00;
                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;
                      goto LAB_000fea09;
                    }
                    pIVar18 = (Image *)0x0;
                    local_a8 = image_00;
LAB_000fef60:
                    local_a0 = local_cc + 0x3fffffff;
                    if (local_a8 == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,
                                    "OptimizeLayerFrames");
                    }
                    goto LAB_000fee89;
                  }
LAB_000fe9cd:
                  local_a0 = local_cc + 0x3fffffff;
                  pIVar9 = DestroyImage(pIVar9);
                  image_00 = pIVar18;
                  if (*local_c8 != 3) goto LAB_000fef38;
                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;
LAB_000fe9f5:
                  pIVar18 = DestroyImage(image_00);
                  iVar19 = *local_c8;
LAB_000fea09:
                  if (iVar19 != 1) goto LAB_000fef60;
                  local_a8 = ReferenceImage(local_d8->previous);
                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;
                  goto LAB_000ff84d;
                }
                *local_c8 = 8;
                memory_00[local_cc + 0x40000000] = 1;
                *puVar20 = memory[local_cc * 4 + -4];
                puVar20[1] = memory[local_cc * 4 + -3];
                puVar20[2] = memory[local_cc * 4 + -2];
                puVar20[3] = memory[local_cc * 4 + -1];
              }
              else {
                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,
                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);
                uVar12 = puVar20[2];
                local_c8 = memory_00 + local_cc + 0x3fffffff;
                *local_c8 = 1;
                if ((int)uVar12 < 0) goto LAB_000fe9b6;
                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,
                                    (ExceptionInfo *)pIVar17);
                try_bounds.width = local_5c.width;
                try_bounds.y = local_5c.y;
                try_bounds.height = local_5c.height;
                try_bounds.x = local_5c.x;
                if (local_5c.x < 0) {
                  bVar21 = true;
                  local_90 = MagickFalse;
                }
                else {
                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,
                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);
                  bVar21 = local_90 == MagickFalse;
                }
                local_a0 = local_cc + 0x3fffffff;
                if (((MVar10 != MagickFalse) && (bVar21)) ||
                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {
                  *puVar20 = try_bounds.width;
                  puVar20[1] = try_bounds.height;
                  puVar20[2] = try_bounds.x;
                  puVar20[3] = try_bounds.y;
                  *local_c8 = 3;
                  MVar10 = local_90;
                }
                local_90 = MVar10;
                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);
                if (pIVar9 == (Image *)0x0) {
                  RelinquishMagickMemory(memory);
                  RelinquishMagickMemory(memory_00);
                  DestroyImage(local_a8);
                  pIVar17 = (Image *)0x0;
                  goto LAB_000fe7b4;
                }
                (pIVar9->background_color).alpha_trait = BlendPixelTrait;
                pIVar17 = (Image *)exception;
                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);
                sVar7 = local_30.y;
                x = local_30.x;
                sVar16 = local_30.height;
                sVar22 = local_30.width;
                local_94 = local_30.width;
                local_98 = local_30.height;
                if (-1 < local_30.x) {
                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {
                    pIVar17 = (Image *)0xb;
                    in_stack_ffffff1c = exception;
                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);
                  }
                  if (0 < (int)sVar16) {
                    local_d4 = sVar7;
                    while (pIVar17 = (Image *)exception,
                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),
                          pQVar11 != (Quantum *)0x0) {
                      if (0 < (int)sVar22) {
                        sVar2 = pIVar9->number_channels;
                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {
                          iVar19 = pIVar9->channel_map[4].offset;
                          sVar14 = 0;
                          do {
                            pQVar11[iVar19] = 0.0;
                            sVar14 = sVar14 + 1;
                            pQVar11 = pQVar11 + sVar2;
                          } while (sVar14 != sVar22);
                        }
                      }
                      pIVar17 = (Image *)exception;
                      MVar10 = SyncAuthenticPixels(pIVar9,exception);
                      if ((MVar10 == MagickFalse) ||
                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;
                    }
                  }
                }
                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,
                                    (ExceptionInfo *)pIVar17);
                try_bounds.height = local_5c.height;
                try_bounds.width = local_5c.width;
                try_bounds.x = local_5c.x;
                try_bounds.y = local_5c.y;
                if ((local_90 == MagickFalse) &&
                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {
                  local_98 = 0;
                  local_94 = 0;
                }
                else {
                  *puVar20 = local_5c.width;
                  puVar20[1] = local_5c.height;
                  puVar20[2] = local_5c.x;
                  puVar20[3] = local_5c.y;
                  *local_c8 = 9;
                }
                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);
                if (image_00 == (Image *)0x0) {
                  RelinquishMagickMemory(memory);
                  RelinquishMagickMemory(memory_00);
                  DestroyImage(local_a8);
                  pIVar17 = (Image *)0x0;
                  DestroyImage(pIVar9);
                  goto LAB_000fe7b4;
                }
                (image_00->background_color).alpha_trait = BlendPixelTrait;
                puVar1 = memory + local_cc * 4 + -4;
                uVar12 = puVar1[1];
                columns = *puVar1;
                local_b8 = puVar1[2];
                local_80 = puVar1[3];
                if (-1 < (int)local_b8) {
                  if (image_00->alpha_trait == UndefinedPixelTrait) {
                    pIVar17 = (Image *)0xb;
                    in_stack_ffffff1c = exception;
                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);
                  }
                  if (0 < (int)uVar12) {
                    local_d4 = local_80;
                    while (pIVar17 = (Image *)exception,
                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,
                                                       exception), pQVar11 != (Quantum *)0x0) {
                      if (0 < (int)columns) {
                        sVar22 = image_00->number_channels;
                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {
                          iVar19 = image_00->channel_map[4].offset;
                          uVar15 = 0;
                          do {
                            pQVar11[iVar19] = 0.0;
                            uVar15 = uVar15 + 1;
                            pQVar11 = pQVar11 + sVar22;
                          } while (uVar15 != columns);
                        }
                      }
                      pIVar17 = (Image *)exception;
                      MVar10 = SyncAuthenticPixels(image_00,exception);
                      if ((MVar10 == MagickFalse) ||
                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;
                    }
                  }
                }
                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,
                                    (ExceptionInfo *)pIVar17);
                try_bounds.width = local_5c.width;
                try_bounds.y = local_5c.y;
                try_bounds.height = local_5c.height;
                try_bounds.x = local_5c.x;
                local_8c = uVar12;
                if ((-1 < local_5c.x) &&
                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,
                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),
                   MVar10 != MagickFalse)) {
                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,
                                      exception);
                  try_bounds.height = local_5c.height;
                  try_bounds.width = local_5c.width;
                  try_bounds.y = local_5c.y;
                  try_bounds.x = local_5c.x;
                  if ((int)local_b8 < 0) {
                    local_8c = local_5c.height;
                    columns = local_5c.width;
                    local_b8 = local_5c.x;
                    local_80 = local_5c.y;
                  }
                  else {
                    if (local_5c.x < (int)local_b8) {
                      iVar19 = local_b8 - local_5c.x;
                      local_b8 = local_5c.x;
                      uVar15 = iVar19 + columns;
                      columns = local_5c.width;
                      if (local_5c.width <= uVar15) {
                        columns = uVar15;
                      }
                    }
                    else {
                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;
                      if (columns < try_bounds.width) {
                        columns = try_bounds.width;
                      }
                    }
                    if (local_5c.y < (int)local_80) {
                      uVar12 = (local_80 - local_5c.y) + uVar12;
                      local_80 = local_5c.y;
                      local_8c = local_5c.height;
                      if (local_5c.height <= uVar12) {
                        local_8c = uVar12;
                      }
                    }
                    else {
                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;
                      local_8c = try_bounds.height;
                      if (try_bounds.height <= uVar12) {
                        local_8c = uVar12;
                      }
                    }
                  }
                  if (-1 < (int)local_b8) {
                    if (image_00->alpha_trait == UndefinedPixelTrait) {
                      in_stack_ffffff1c = exception;
                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);
                    }
                    if (0 < (int)local_8c) {
                      local_d4 = local_80;
                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,
                                                          exception), pQVar11 != (Quantum *)0x0) {
                        if (0 < (int)columns) {
                          sVar22 = image_00->number_channels;
                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {
                            iVar19 = image_00->channel_map[4].offset;
                            sVar16 = 0;
                            do {
                              pQVar11[iVar19] = 0.0;
                              sVar16 = sVar16 + 1;
                              pQVar11 = pQVar11 + sVar22;
                            } while (columns != sVar16);
                          }
                        }
                        MVar10 = SyncAuthenticPixels(image_00,exception);
                        if ((MVar10 == MagickFalse) ||
                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;
                      }
                    }
                  }
                  pIVar17 = (Image *)exception;
                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);
                  try_bounds.width = local_5c.width;
                  try_bounds.height = local_5c.height;
                  try_bounds.x = local_5c.x;
                  try_bounds.y = local_5c.y;
                }
                iVar19 = *local_c8;
                pIVar18 = image_00;
                if (try_bounds.height * try_bounds.width + local_8c * columns <
                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {
                  *puVar1 = columns;
                  puVar1[1] = local_8c;
                  puVar1[2] = local_b8;
                  puVar1[3] = local_80;
                  puVar20[1] = try_bounds.height;
                  *puVar20 = try_bounds.width;
                  puVar20[2] = try_bounds.x;
                  puVar20[3] = try_bounds.y;
                  if (iVar19 != 9) {
                    *local_c8 = 2;
                    goto LAB_000fe9cd;
                  }
                  pIVar9 = DestroyImage(pIVar9);
                  *local_c8 = 2;
                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;
                  local_a8 = DestroyImage(local_a8);
                  if (*local_c8 == 2) {
                    pIVar18 = (Image *)0x0;
                    local_a8 = image_00;
                    goto LAB_000fee89;
                  }
                  goto LAB_000fe9f5;
                }
                if (iVar19 != 9) goto LAB_000fe9cd;
                pIVar18 = DestroyImage(image_00);
                DestroyImage(local_a8);
                memory[local_cc * 4 + 4] = *puVar20;
                memory[local_cc * 4 + 5] = puVar20[1];
                memory[local_cc * 4 + 6] = puVar20[2];
                memory[local_cc * 4 + 7] = puVar20[3];
                *puVar20 = local_94;
                puVar20[1] = local_98;
                puVar20[2] = x;
                puVar20[3] = sVar7;
                *local_c8 = 9;
                memory_00[local_cc + 0x40000000] = 2;
                local_a0 = local_cc + 0x40000000;
                local_cc = local_cc + 1;
                local_a8 = pIVar9;
                pIVar9 = (Image *)0x0;
LAB_000fee89:
                local_c8 = memory_00 + local_a0;
LAB_000fea38:
                memory_00[local_cc] = *local_c8;
              }
              local_cc = local_cc + 1;
              local_d8 = GetNextImageInList(local_d8);
            } while (local_d8 != (Image *)0x0);
          }
          DestroyImage(local_a8);
          exception_00 = AcquireExceptionInfo();
          pIVar9 = GetFirstImageInList(image);
          optimized_image = NewImageList();
          local_d8 = (Image *)0x0;
joined_r0x000ff4a8:
          if (pIVar9 != (Image *)0x0) {
            do {
              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);
              if (pIVar17 == (Image *)0x0) {
LAB_000ff7a7:
                DestroyExceptionInfo(exception_00);
                RelinquishMagickMemory(memory);
                RelinquishMagickMemory(memory_00);
                pIVar17 = (Image *)0x0;
                DestroyImageList(optimized_image);
                goto LAB_000fe7b4;
              }
              (pIVar17->background_color).alpha_trait = BlendPixelTrait;
              dVar6 = DAT_002df8d8;
              pDVar13 = memory_00 + (int)local_d8;
              if (*pDVar13 == 8) {
                iVar19 = 0;
                pDVar8 = memory_00 + (int)local_d8 + 1;
                do {
                  pDVar13 = pDVar8;
                  dVar4 = (double)pIVar9->ticks_per_second;
                  dVar3 = dVar6;
                  dVar5 = dVar4;
                  if (dVar4 < 0.0) {
                    dVar3 = DAT_002df8e0;
                    dVar5 = -dVar4;
                  }
                  if (DAT_002df2d0 <= dVar5) {
                    dVar3 = (double)DAT_002df8b4 / dVar4;
                  }
                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));
                  iVar19 = iVar19 + (int)local_74;
                  pIVar9 = GetNextImageInList(pIVar9);
                  local_d8 = (Image *)((int)local_d8 + 1);
                  pDVar8 = pDVar13 + 1;
                } while (*pDVar13 == 8);
                sVar22 = pIVar9->delay;
                dVar3 = (double)pIVar9->ticks_per_second;
                dVar6 = DAT_002df8d8;
                dVar4 = dVar3;
                if (dVar3 < 0.0) {
                  dVar6 = DAT_002df8e0;
                  dVar4 = -dVar3;
                }
                if (DAT_002df2d0 <= dVar4) {
                  dVar6 = (double)DAT_002df8b4 / dVar3;
                }
                pIVar17->ticks_per_second = 100;
                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));
                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;
              }
              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00
                                 );
              DestroyImage(pIVar17);
              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;
              pIVar18->dispose = *pDVar13;
              if (*pDVar13 != 9) goto code_r0x000ff534;
              pIVar18->delay = 0;
              pIVar18->dispose = NoneDispose;
              AppendImageToList(&optimized_image,pIVar18);
              local_d8 = (Image *)((int)local_d8 + 1);
            } while( true );
          }
          DestroyExceptionInfo(exception_00);
          RelinquishMagickMemory(memory);
          RelinquishMagickMemory(memory_00);
          pIVar17 = GetFirstImageInList(optimized_image);
          goto LAB_000fe7b4;
        }
LAB_000ff84d:
        pIVar17 = (Image *)0x0;
        RelinquishMagickMemory(memory);
        RelinquishMagickMemory(memory_00);
        goto LAB_000fe7b4;
      }
      RelinquishMagickMemory(memory);
      tag = "MemoryAllocationFailed";
      severity = ErrorException;
      sVar22 = 0x3f4;
    }
  }
  else {
    sVar22 = pIVar9->columns;
    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {
      if (((pIVar9->page).x == 0) &&
         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))
      {
        sVar14 = (image->page).height;
        pIVar17 = pIVar9;
        while ((pIVar17->page).height == sVar14) {
          pIVar17 = GetNextImageInList(pIVar17);
          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;
          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;
          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||
             ((pIVar17->page).width != sVar2)) break;
        }
      }
      tag = "ImagePagesAreNotCoalesced";
      severity = OptionError;
      sVar22 = 0x3e3;
    }
    else {
LAB_000fe818:
      tag = "ImagesAreNotTheSameSize";
      severity = OptionError;
      sVar22 = 0x3de;
    }
  }
  pIVar17 = (Image *)0x0;
  ThrowMagickException
            (exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",
             image->filename);
LAB_000fe7b4:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return pIVar17;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
code_r0x000ff534:
  pIVar9 = GetNextImageInList(pIVar9);
  AppendImageToList(&optimized_image,pIVar18);
  local_d8 = (Image *)((int)local_d8 + 1);
  goto joined_r0x000ff4a8;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 OptimizePlusImageLayers(int param_1,int param_2)

{
  uint *puVar1;
  int iVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  uint uVar7;
  uint uVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  uint *puVar12;
  undefined4 *puVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int *piVar17;
  uint uVar18;
  undefined4 uVar19;
  int iVar20;
  uint *puVar21;
  uint uVar22;
  int in_GS_OFFSET;
  bool bVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  char *pcVar26;
  int local_d8;
  uint local_d4;
  int local_cc;
  int *local_c8;
  uint local_b8;
  int local_a8;
  int local_a0;
  uint local_98;
  uint local_94;
  int local_90;
  uint local_8c;
  uint local_80;
  longlong local_74;
  uint local_5c;
  uint local_58;
  uint local_54;
  uint local_50;
  undefined4 local_44;
  uint local_40;
  uint local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xfe649;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,
                  "OptimizeLayerFrames");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,
                   param_1 + 0x318);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,
                  "OptimizeLayerFrames");
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,
                  "OptimizeLayerFrames");
  }
  iVar10 = GetFirstImageInList(param_1);
  if (iVar10 == 0) {
LAB_000fe844:
    uVar24 = GetImageListLength(iVar10);
    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);
    if (puVar12 == (uint *)0x0) {
      pcVar26 = "MemoryAllocationFailed";
      uVar25 = 400;
      uVar24 = 0x3ed;
    }
    else {
      uVar24 = GetImageListLength(param_1);
      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);
      if (puVar13 != (undefined4 *)0x0) {
        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1
                              ,param_2);
        if (local_a8 != 0) {
          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);
          uVar24 = *(undefined4 *)(iVar10 + 0x204);
          *(undefined8 *)(local_a8 + 0xbc) = 0;
          *(undefined4 *)(local_a8 + 0x208) = 0;
          *(undefined4 *)(local_a8 + 0x20c) = 0;
          *(undefined4 *)(local_a8 + 0x204) = uVar24;
          *(undefined4 *)(local_a8 + 0x240) = 1;
          *(undefined4 *)(local_a8 + 0x84) = 4;
          SetImageBackgroundColor(local_a8,param_2);
          *puVar13 = 1;
          FUN_000fba40(param_2);
          *puVar12 = local_5c;
          puVar12[1] = local_58;
          puVar12[2] = local_54;
          puVar12[3] = local_50;
          local_d8 = GetNextImageInList(iVar10);
          if (local_d8 != 0) {
            iVar20 = 0;
            local_cc = 1;
            iVar10 = 0;
            do {
              puVar21 = puVar12 + local_cc * 4;
              FUN_000fba40(param_2);
              *puVar21 = local_5c;
              puVar21[1] = local_58;
              puVar21[2] = local_54;
              puVar21[3] = local_50;
              if ((int)local_54 < 0) {
                local_c8 = puVar13 + local_cc + 0x3fffffff;
                *local_c8 = 1;
LAB_000fe9b6:
                if (local_cc == 1) {
                  iVar15 = iVar20;
                  if (iVar10 == 0) {
LAB_000fef38:
                    local_a8 = DestroyImage(local_a8);
                    iVar14 = *local_c8;
                    if (iVar14 != 2) {
                      iVar20 = iVar15;
                      if (iVar15 != 0) goto LAB_000fe9f5;
                      goto LAB_000fea09;
                    }
                    iVar20 = 0;
                    local_a8 = iVar15;
LAB_000fef60:
                    local_a0 = local_cc + 0x3fffffff;
                    if (local_a8 == 0) {
                    /* WARNING: Subroutine does not return */
                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,
                                    "OptimizeLayerFrames");
                    }
                    goto LAB_000fee89;
                  }
LAB_000fe9cd:
                  local_a0 = local_cc + 0x3fffffff;
                  iVar10 = DestroyImage(iVar10);
                  iVar15 = iVar20;
                  if (*local_c8 != 3) goto LAB_000fef38;
                  if (iVar20 == 0) goto LAB_000fee89;
LAB_000fe9f5:
                  iVar20 = DestroyImage(iVar15);
                  iVar14 = *local_c8;
LAB_000fea09:
                  if (iVar14 != 1) goto LAB_000fef60;
                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));
                  if (local_a8 != 0) goto LAB_000fea38;
                  goto LAB_000ff84d;
                }
                *local_c8 = 8;
                puVar13[local_cc + 0x40000000] = 1;
                *puVar21 = puVar12[local_cc * 4 + -4];
                puVar21[1] = puVar12[local_cc * 4 + -3];
                puVar21[2] = puVar12[local_cc * 4 + -2];
                puVar21[3] = puVar12[local_cc * 4 + -1];
              }
              else {
                iVar15 = FUN_000fa9a0(param_2);
                uVar16 = puVar21[2];
                local_c8 = puVar13 + local_cc + 0x3fffffff;
                *local_c8 = 1;
                if ((int)uVar16 < 0) goto LAB_000fe9b6;
                FUN_000fba40(param_2);
                local_40 = local_5c;
                local_34 = local_50;
                local_3c = local_58;
                local_38 = local_54;
                if ((int)local_54 < 0) {
                  bVar23 = true;
                  local_90 = 0;
                }
                else {
                  local_90 = FUN_000fa9a0(param_2);
                  bVar23 = local_90 == 0;
                }
                local_a0 = local_cc + 0x3fffffff;
                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {
                  *puVar21 = local_40;
                  puVar21[1] = local_3c;
                  puVar21[2] = local_38;
                  puVar21[3] = local_34;
                  *local_c8 = 3;
                  iVar15 = local_90;
                }
                local_90 = iVar15;
                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);
                if (iVar10 == 0) {
                  RelinquishMagickMemory(puVar12);
                  RelinquishMagickMemory(puVar13);
                  DestroyImage(local_a8);
                  uVar19 = 0;
                  goto LAB_000fe7b4;
                }
                *(undefined4 *)(iVar10 + 0x84) = 4;
                FUN_000fab80(3,param_2);
                uVar8 = local_24;
                uVar7 = local_28;
                uVar22 = local_2c;
                uVar16 = local_30;
                local_94 = local_30;
                local_98 = local_2c;
                if (-1 < (int)local_28) {
                  if (*(int *)(iVar10 + 0x294) == 0) {
                    SetImageAlphaChannel(iVar10,0xb,param_2);
                  }
                  if (0 < (int)uVar22) {
                    local_d4 = uVar8;
                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),
                          iVar20 != 0) {
                      if (0 < (int)uVar16) {
                        iVar15 = *(int *)(iVar10 + 0x298);
                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {
                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);
                          uVar18 = 0;
                          do {
                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;
                            uVar18 = uVar18 + 1;
                            iVar20 = iVar20 + iVar15 * 8;
                          } while (uVar18 != uVar16);
                        }
                      }
                      iVar20 = SyncAuthenticPixels(iVar10,param_2);
                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))
                      break;
                    }
                  }
                }
                FUN_000fba40(param_2);
                if ((local_90 == 0) &&
                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {
                  local_98 = 0;
                  local_94 = 0;
                }
                else {
                  *puVar21 = local_5c;
                  puVar21[1] = local_58;
                  puVar21[2] = local_54;
                  puVar21[3] = local_50;
                  *local_c8 = 9;
                }
                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);
                if (iVar15 == 0) {
                  RelinquishMagickMemory(puVar12);
                  RelinquishMagickMemory(puVar13);
                  DestroyImage(local_a8);
                  uVar19 = 0;
                  DestroyImage(iVar10);
                  goto LAB_000fe7b4;
                }
                *(undefined4 *)(iVar15 + 0x84) = 4;
                puVar1 = puVar12 + local_cc * 4 + -4;
                uVar16 = puVar1[1];
                uVar22 = *puVar1;
                local_b8 = puVar1[2];
                local_80 = puVar1[3];
                if (-1 < (int)local_b8) {
                  if (*(int *)(iVar15 + 0x294) == 0) {
                    SetImageAlphaChannel(iVar15,0xb,param_2);
                  }
                  if (0 < (int)uVar16) {
                    local_d4 = local_80;
                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),
                          iVar20 != 0) {
                      if (0 < (int)uVar22) {
                        iVar14 = *(int *)(iVar15 + 0x298);
                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {
                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);
                          uVar18 = 0;
                          do {
                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;
                            uVar18 = uVar18 + 1;
                            iVar20 = iVar20 + iVar14 * 8;
                          } while (uVar18 != uVar22);
                        }
                      }
                      iVar20 = SyncAuthenticPixels(iVar15,param_2);
                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))
                      break;
                    }
                  }
                }
                FUN_000fba40(param_2);
                local_40 = local_5c;
                local_34 = local_50;
                local_3c = local_58;
                local_38 = local_54;
                local_8c = uVar16;
                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {
                  FUN_000fab80(3,param_2);
                  local_3c = local_58;
                  local_40 = local_5c;
                  if ((int)local_b8 < 0) {
                    local_8c = local_58;
                    uVar22 = local_5c;
                    local_b8 = local_54;
                    local_80 = local_50;
                  }
                  else {
                    if ((int)local_54 < (int)local_b8) {
                      iVar20 = local_b8 - local_54;
                      local_b8 = local_54;
                      uVar18 = iVar20 + uVar22;
                      uVar22 = local_5c;
                      if (local_5c <= uVar18) {
                        uVar22 = uVar18;
                      }
                    }
                    else {
                      local_40 = (local_54 - local_b8) + local_5c;
                      if (uVar22 < local_40) {
                        uVar22 = local_40;
                      }
                    }
                    if ((int)local_50 < (int)local_80) {
                      uVar16 = (local_80 - local_50) + uVar16;
                      local_80 = local_50;
                      local_8c = local_58;
                      if (local_58 <= uVar16) {
                        local_8c = uVar16;
                      }
                    }
                    else {
                      local_3c = (local_50 - local_80) + local_58;
                      local_8c = local_3c;
                      if (local_3c <= uVar16) {
                        local_8c = uVar16;
                      }
                    }
                  }
                  if (-1 < (int)local_b8) {
                    if (*(int *)(iVar15 + 0x294) == 0) {
                      SetImageAlphaChannel(iVar15,0xb,param_2);
                    }
                    if (0 < (int)local_8c) {
                      local_d4 = local_80;
                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),
                            iVar20 != 0) {
                        if (0 < (int)uVar22) {
                          iVar14 = *(int *)(iVar15 + 0x298);
                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {
                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);
                            uVar16 = 0;
                            do {
                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;
                              uVar16 = uVar16 + 1;
                              iVar20 = iVar20 + iVar14 * 8;
                            } while (uVar22 != uVar16);
                          }
                        }
                        iVar20 = SyncAuthenticPixels(iVar15,param_2);
                        if ((iVar20 == 0) ||
                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;
                      }
                    }
                  }
                  FUN_000fab80(4,param_2);
                  local_40 = local_5c;
                  local_3c = local_58;
                  local_38 = local_54;
                  local_34 = local_50;
                }
                iVar14 = *local_c8;
                iVar20 = iVar15;
                if (local_3c * local_40 + local_8c * uVar22 <
                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {
                  *puVar1 = uVar22;
                  puVar1[1] = local_8c;
                  puVar1[2] = local_b8;
                  puVar1[3] = local_80;
                  puVar21[1] = local_3c;
                  *puVar21 = local_40;
                  puVar21[2] = local_38;
                  puVar21[3] = local_34;
                  if (iVar14 != 9) {
                    *local_c8 = 2;
                    goto LAB_000fe9cd;
                  }
                  iVar10 = DestroyImage(iVar10);
                  *local_c8 = 2;
                  if (iVar10 != 0) goto LAB_000fe9cd;
                  local_a8 = DestroyImage(local_a8);
                  if (*local_c8 == 2) {
                    iVar20 = 0;
                    local_a8 = iVar15;
                    goto LAB_000fee89;
                  }
                  goto LAB_000fe9f5;
                }
                if (iVar14 != 9) goto LAB_000fe9cd;
                iVar20 = DestroyImage(iVar15);
                DestroyImage(local_a8);
                puVar12[local_cc * 4 + 4] = *puVar21;
                puVar12[local_cc * 4 + 5] = puVar21[1];
                puVar12[local_cc * 4 + 6] = puVar21[2];
                puVar12[local_cc * 4 + 7] = puVar21[3];
                *puVar21 = local_94;
                puVar21[1] = local_98;
                puVar21[2] = uVar7;
                puVar21[3] = uVar8;
                *local_c8 = 9;
                puVar13[local_cc + 0x40000000] = 2;
                local_a0 = local_cc + 0x40000000;
                local_cc = local_cc + 1;
                local_a8 = iVar10;
                iVar10 = 0;
LAB_000fee89:
                local_c8 = puVar13 + local_a0;
LAB_000fea38:
                puVar13[local_cc] = *local_c8;
              }
              local_cc = local_cc + 1;
              local_d8 = GetNextImageInList(local_d8);
            } while (local_d8 != 0);
          }
          DestroyImage(local_a8);
          uVar24 = AcquireExceptionInfo();
          iVar10 = GetFirstImageInList(param_1);
          local_44 = NewImageList();
          local_d8 = 0;
joined_r0x000ff4a8:
          if (iVar10 != 0) {
            do {
              iVar20 = CloneImage(iVar10,0,0,1,param_2);
              if (iVar20 == 0) {
LAB_000ff7a7:
                DestroyExceptionInfo(uVar24);
                RelinquishMagickMemory(puVar12);
                RelinquishMagickMemory(puVar13);
                uVar19 = 0;
                DestroyImageList(local_44);
                goto LAB_000fe7b4;
              }
              *(undefined4 *)(iVar20 + 0x84) = 4;
              dVar6 = DAT_002df8d8;
              piVar17 = puVar13 + local_d8;
              if (*piVar17 == 8) {
                iVar15 = 0;
                piVar9 = puVar13 + local_d8 + 1;
                do {
                  piVar17 = piVar9;
                  dVar4 = (double)*(int *)(iVar10 + 0x250);
                  dVar3 = dVar6;
                  dVar5 = dVar4;
                  if (dVar4 < 0.0) {
                    dVar3 = DAT_002df8e0;
                    dVar5 = -dVar4;
                  }
                  if (DAT_002df2d0 <= dVar5) {
                    dVar3 = (double)DAT_002df8b4 / dVar4;
                  }
                  local_74 = (longlong)
                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));
                  iVar15 = iVar15 + (int)local_74;
                  iVar10 = GetNextImageInList(iVar10);
                  local_d8 = local_d8 + 1;
                  piVar9 = piVar17 + 1;
                } while (*piVar17 == 8);
                iVar14 = *(int *)(iVar10 + 0x248);
                dVar3 = (double)*(int *)(iVar10 + 0x250);
                dVar6 = DAT_002df8d8;
                dVar4 = dVar3;
                if (dVar3 < 0.0) {
                  dVar6 = DAT_002df8e0;
                  dVar4 = -dVar3;
                }
                if (DAT_002df2d0 <= dVar4) {
                  dVar6 = (double)DAT_002df8b4 / dVar3;
                }
                *(undefined4 *)(iVar20 + 0x250) = 100;
                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));
                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;
              }
              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);
              DestroyImage(iVar20);
              if (iVar15 == 0) goto LAB_000ff7a7;
              *(int *)(iVar15 + 0x240) = *piVar17;
              if (*piVar17 != 9) goto code_r0x000ff534;
              *(undefined4 *)(iVar15 + 0x248) = 0;
              *(undefined4 *)(iVar15 + 0x240) = 1;
              AppendImageToList(&local_44,iVar15);
              local_d8 = local_d8 + 1;
            } while( true );
          }
          DestroyExceptionInfo(uVar24);
          RelinquishMagickMemory(puVar12);
          RelinquishMagickMemory(puVar13);
          uVar19 = GetFirstImageInList(local_44);
          goto LAB_000fe7b4;
        }
LAB_000ff84d:
        uVar19 = 0;
        RelinquishMagickMemory(puVar12);
        RelinquishMagickMemory(puVar13);
        goto LAB_000fe7b4;
      }
      RelinquishMagickMemory(puVar12);
      pcVar26 = "MemoryAllocationFailed";
      uVar25 = 400;
      uVar24 = 0x3f4;
    }
  }
  else {
    iVar20 = *(int *)(iVar10 + 0x18);
    if ((iVar20 == *(int *)(param_1 + 0x18)) &&
       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {
      if ((*(int *)(iVar10 + 0x208) == 0) &&
         ((*(int *)(iVar10 + 0x20c) == 0 &&
          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {
        iVar2 = *(int *)(param_1 + 0x204);
        iVar11 = iVar10;
        while (*(int *)(iVar11 + 0x204) == iVar2) {
          iVar11 = GetNextImageInList(iVar11);
          if (iVar11 == 0) goto LAB_000fe844;
          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))
          goto LAB_000fe818;
          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||
             (*(int *)(iVar11 + 0x200) != iVar14)) break;
        }
      }
      pcVar26 = "ImagePagesAreNotCoalesced";
      uVar25 = 0x19a;
      uVar24 = 0x3e3;
    }
    else {
LAB_000fe818:
      pcVar26 = "ImagesAreNotTheSameSize";
      uVar25 = 0x19a;
      uVar24 = 0x3de;
    }
  }
  uVar19 = 0;
  ThrowMagickException
            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",
             param_1 + 0x318);
LAB_000fe7b4:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar19;
  }
                    /* WARNING: Subroutine does not return */
  FUN_002decd0();
code_r0x000ff534:
  iVar10 = GetNextImageInList(iVar10);
  AppendImageToList(&local_44,iVar15);
  local_d8 = local_d8 + 1;
  goto joined_r0x000ff4a8;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00039d70
ADD EBX,0x31f9b7
SUB ESP,0xcc
MOV ESI,dword ptr [ESP + 0xe4]
MOV EAX,dword ptr [ESP + 0xe0]
MOV dword ptr [ESP],ESI
MOV ESI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xbc],ESI
XOR ESI,ESI
MOV dword ptr [ESP + 0x2c],EAX
TEST EAX,EAX
JZ 0x000ff8ca
CMP dword ptr [EAX + 0x3344],0xabacadab
JNZ 0x000ff92c
MOV EDI,dword ptr [EAX + 0x3328]
TEST EDI,EDI
JNZ 0x000fe7d8
MOV ESI,dword ptr [ESP]
TEST ESI,ESI
JZ 0x000ff90d
MOV EAX,dword ptr [ESP]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x000ff8ee
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x38]
PUSH EDI
CALL 0x00031a70
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000fe844
MOV ESI,dword ptr [EAX + 0x18]
MOV EAX,EDI
CMP ESI,dword ptr [EDI + 0x18]
JNZ 0x000fe818
MOV EDI,dword ptr [EDI + 0x1c]
CMP EDI,dword ptr [EBP + 0x1c]
JNZ 0x000fe818
MOV ECX,dword ptr [EBP + 0x208]
TEST ECX,ECX
JNZ 0x000fe776
MOV EDX,dword ptr [EBP + 0x20c]
TEST EDX,EDX
JNZ 0x000fe776
MOV ECX,dword ptr [EAX + 0x200]
MOV dword ptr [ESP + 0x4],ECX
CMP ECX,dword ptr [EBP + 0x200]
JNZ 0x000fe776
MOV EDX,dword ptr [EAX + 0x204]
MOV dword ptr [ESP + 0x8],EBP
MOV EAX,EBP
MOV EBP,EDX
JMP 0x000fe76e
SUB ESP,0xc
PUSH EAX
CALL 0x000319e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000fe840
CMP dword ptr [EAX + 0x18],ESI
JNZ 0x000fe818
CMP dword ptr [EAX + 0x1c],EDI
JNZ 0x000fe818
MOV ECX,dword ptr [EAX + 0x208]
TEST ECX,ECX
JNZ 0x000fe776
MOV EDX,dword ptr [EAX + 0x20c]
TEST EDX,EDX
JNZ 0x000fe776
MOV ECX,dword ptr [ESP + 0x4]
CMP dword ptr [EAX + 0x200],ECX
JNZ 0x000fe776
CMP dword ptr [EAX + 0x204],EBP
JZ 0x000fe728
MOV EAX,dword ptr [ESP + 0x2c]
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffeda836]
PUSH EAX
PUSH 0x19a
PUSH 0x3e3
LEA EAX,[EBX + 0xffedaa74]
XOR EBP,EBP
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00032e80
ADD ESP,0x20
MOV EBX,dword ptr [ESP + 0xbc]
XOR EBX,dword ptr GS:[0x14]
MOV EAX,EBP
JNZ 0x000ff8e9
ADD ESP,0xcc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x34]
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffed95ae]
PUSH EAX
LEA EAX,[EBX + 0xffedaa74]
PUSH 0x3cd
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x000fe6a0
MOV EAX,dword ptr [ESP + 0x2c]
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffeda81e]
PUSH EAX
PUSH 0x19a
PUSH 0x3de
JMP 0x000fe798
MOV EBP,dword ptr [ESP + 0x8]
SUB ESP,0xc
PUSH EBP
CALL 0x00032180
POP ESI
POP EDI
PUSH 0x20
PUSH EAX
CALL 0x000317b0
MOV dword ptr [ESP + 0x40],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ff8a3
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x00032180
POP EDX
POP ECX
PUSH 0x8
PUSH EAX
CALL 0x000317b0
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ff86d
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH dword ptr [EBP + 0x1c]
PUSH dword ptr [EBP + 0x18]
PUSH EBP
CALL 0x00030b90
MOV dword ptr [ESP + 0x54],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000ff84d
MOV ESI,dword ptr [ESP + 0x34]
FLDZ
SUB ESP,0x8
MOV EAX,dword ptr [EBP + 0x200]
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [ESI + 0x200],EAX
MOV EAX,dword ptr [EBP + 0x204]
FSTP qword ptr [ESI + 0xbc]
MOV dword ptr [ESI + 0x208],0x0
MOV dword ptr [ESI + 0x20c],0x0
MOV dword ptr [ESI + 0x204],EAX
MOV dword ptr [ESI + 0x240],0x1
MOV dword ptr [ESI + 0x84],0x4
PUSH EDI
PUSH ESI
CALL 0x000330a0
MOV EAX,dword ptr [ESP + 0x30]
MOV EDX,ESI
MOV ECX,EBP
MOV dword ptr [EAX],0x1
LEA EAX,[ESP + 0x90]
MOV dword ptr [ESP + 0x38],EAX
MOV dword ptr [ESP],EDI
CALL 0x000fba40
MOV EAX,dword ptr [ESP + 0x90]
MOV ESI,dword ptr [ESP + 0x40]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESI + 0xc],EAX
MOV dword ptr [ESP],EBP
CALL 0x000319e0
ADD ESP,0x10
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JZ 0x000ff45e
XOR EBP,EBP
MOV dword ptr [ESP + 0x10],0x1
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x18],EBP
MOV dword ptr [ESP + 0x60],EAX
JMP 0x000fea6b
MOV EAX,dword ptr [ESP + 0x10]
ADD EAX,0x3fffffff
MOV dword ptr [ESP + 0x3c],EAX
SHL EAX,0x2
MOV EDI,EAX
MOV dword ptr [ESP + 0x54],EAX
MOV EAX,dword ptr [ESP + 0x20]
ADD EAX,EDI
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [EAX],0x1
CMP dword ptr [ESP + 0x10],0x1
JNZ 0x000ff2b0
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x000fef38
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00032dd0
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX],0x3
JNZ 0x000fef38
TEST EBP,EBP
JZ 0x000fee89
SUB ESP,0xc
PUSH EBP
CALL 0x00032dd0
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
CMP EAX,0x1
JNZ 0x000fef60
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x10]
PUSH dword ptr [EAX + 0x333c]
CALL 0x000339f0
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ff84d
NOP
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EDI + ECX*0x4],EAX
ADD ECX,0x1
MOV dword ptr [ESP + 0x10],ECX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
CALL 0x000319e0
ADD ESP,0x10
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JZ 0x000ff45e
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [ESP + 0x3c]
SHL EAX,0x4
MOV dword ptr [ESP + 0x4c],EAX
MOV EDX,dword ptr [EDI + 0x333c]
MOV ECX,EDI
PUSH dword ptr [ESP + 0xc]
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x000fba40
MOV EAX,dword ptr [ESP + 0x90]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [ESI + 0x8],EAX
MOV EDX,dword ptr [ESP + 0x9c]
ADD ESP,0x10
TEST EAX,EAX
MOV dword ptr [ESI + 0xc],EDX
JS 0x000fe990
MOV EAX,dword ptr [EDI + 0x333c]
SUB ESP,0xc
MOV EDX,EDI
MOV ECX,ESI
PUSH dword ptr [ESP + 0xc]
CALL 0x000fa9a0
MOV ECX,dword ptr [ESP + 0x20]
MOV EDI,EAX
MOV EAX,dword ptr [ESI + 0x8]
ADD ECX,0x3fffffff
MOV dword ptr [ESP + 0x4c],ECX
SHL ECX,0x2
MOV EDX,ECX
MOV dword ptr [ESP + 0x64],ECX
MOV ECX,dword ptr [ESP + 0x30]
ADD ECX,EDX
MOV dword ptr [ESP + 0x24],ECX
ADD ESP,0x10
TEST EAX,EAX
MOV dword ptr [ECX],0x1
JS 0x000fe9b6
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
MOV EBP,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,EBP
CALL 0x000fba40
MOV EAX,dword ptr [ESP + 0x90]
MOV EDX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0xac],EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0xb8],EDX
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [ESP + 0xb4],EAX
ADD ESP,0x10
TEST EAX,EAX
JNS 0x000fefc0
MOV EAX,0x1
MOV dword ptr [ESP + 0x4c],0x0
TEST EDI,EDI
JZ 0x000fef90
TEST AL,AL
JZ 0x000fef90
MOV EAX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xa8]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX],0x3
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH 0x0
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX + 0x333c]
CALL 0x00030b90
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000ff7eb
MOV EDI,dword ptr [ESP + 0x18]
SUB ESP,0x8
MOV dword ptr [EDI + 0x84],0x4
MOV EDX,EDI
PUSH dword ptr [ESP + 0x8]
PUSH 0x3
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0x70]
CALL 0x000fab80
MOV EAX,dword ptr [ESP + 0xbc]
MOV ECX,dword ptr [ESP + 0xc8]
MOV dword ptr [ESP + 0x58],EAX
MOV EAX,dword ptr [ESP + 0xc0]
MOV dword ptr [ESP + 0x80],ECX
MOV dword ptr [ESP + 0x54],EAX
MOV EAX,dword ptr [ESP + 0xc4]
MOV dword ptr [ESP + 0x48],EAX
ADD ESP,0x10
TEST EAX,EAX
JNS 0x000feff0
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x14]
CALL 0x000fba40
MOV EDX,dword ptr [ESP + 0x94]
MOV EAX,dword ptr [ESP + 0x90]
MOV dword ptr [ESP + 0xb0],EDX
MOV EDX,dword ptr [ESP + 0x98]
MOV dword ptr [ESP + 0xac],EAX
MOV dword ptr [ESP + 0xb4],EDX
MOV EDX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0xb8],EDX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4c]
TEST EDX,EDX
JNZ 0x000feea0
IMUL EAX,dword ptr [ESP + 0xa0]
MOV EDX,dword ptr [ESP + 0x48]
IMUL EDX,dword ptr [ESP + 0x44]
ADD EAX,EDX
MOV EDX,dword ptr [ESI]
IMUL EDX,dword ptr [ESI + 0x4]
CMP EAX,EDX
JC 0x000feea0
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x48],0x0
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH 0x0
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX + 0x333c]
CALL 0x00030b90
ADD ESP,0x20
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000ff817
MOV dword ptr [EAX + 0x84],0x4
MOV EDI,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x30]
LEA EAX,[EAX + EDI*0x1 + -0x10]
MOV EDX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x4c],EAX
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x50],EDX
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
TEST EDX,EDX
MOV dword ptr [ESP + 0x24],EDX
MOV dword ptr [ESP + 0x5c],EAX
JNS 0x000ff1f0
SUB ESP,0xc
MOV EDX,EBP
PUSH dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x14]
CALL 0x000fba40
MOV EAX,dword ptr [ESP + 0x90]
MOV EDX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0xac],EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0xb8],EDX
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [ESP + 0xb4],EAX
ADD ESP,0x10
TEST EAX,EAX
JNS 0x000ff0b0
MOV EAX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x9c]
MOV EDX,dword ptr [ESP + 0xa0]
MOV EAX,dword ptr [EAX]
IMUL EDX,ECX
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x50]
IMUL EAX,EDI
ADD EDX,EAX
MOV dword ptr [ESP + 0x58],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [EDX]
IMUL EAX,dword ptr [EDX + 0x4]
MOV EDX,EAX
MOV EAX,dword ptr [ESI]
IMUL EAX,dword ptr [ESI + 0x4]
ADD EDX,EAX
MOV EAX,dword ptr [ESP + 0x48]
IMUL EAX,dword ptr [ESP + 0x44]
ADD EAX,EDX
CMP dword ptr [ESP + 0x58],EAX
JC 0x000feee0
CMP dword ptr [ESP + 0x8],0x9
JNZ 0x000fe9cd
SUB ESP,0xc
PUSH EBP
CALL 0x00032dd0
MOV EBP,EAX
POP EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00032dd0
MOV EDI,dword ptr [ESP + 0x40]
MOV ECX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [ESI]
ADD dword ptr [ESP + 0x20],0x1
MOV dword ptr [EDI + ECX*0x1 + 0x10],EAX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [EDI + ECX*0x1 + 0x14],EAX
MOV EAX,dword ptr [ESI + 0x8]
MOV dword ptr [EDI + ECX*0x1 + 0x18],EAX
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [EDI + ECX*0x1 + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x58]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [ESP + 0x64]
MOV dword ptr [EAX],0x9
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + ESI*0x1 + 0x4],0x2
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x18]
ADD EAX,0x3fffffff
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x34],ESI
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [ESP + 0x3c]
LEA EAX,[EAX + ESI*0x4]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x000fea38
MOV EAX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xa8]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX],0x9
JMP 0x000fecdd
MOV EDX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x50]
CMP dword ptr [ESP + 0x8],0x9
MOV dword ptr [EDX],EDI
MOV EDI,dword ptr [ESP + 0x24]
MOV dword ptr [EDX + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [EDX + 0x8],EDI
MOV EDI,dword ptr [ESP + 0x5c]
MOV dword ptr [EDX + 0xc],EDI
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESI],ECX
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xa8]
MOV dword ptr [ESI + 0xc],EAX
JZ 0x000ff340
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX],0x2
JMP 0x000fe9cd
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00032dd0
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
CMP EAX,0x2
JNZ 0x000ff390
MOV dword ptr [ESP + 0x34],EBP
XOR EBP,EBP
MOV ESI,dword ptr [ESP + 0x34]
TEST ESI,ESI
JNZ 0x000fee89
LEA EAX,[EBX + 0xffedaa88]
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH 0x527
PUSH EAX
LEA EAX,[EBX + 0xffeda850]
PUSH EAX
CALL 0x000313d0
MOV EDX,dword ptr [ESP + 0x9c]
MOV EAX,dword ptr [ESI]
IMUL EDX,dword ptr [ESP + 0xa0]
IMUL EAX,dword ptr [ESI + 0x4]
CMP EDX,EAX
JC 0x000feb91
MOV dword ptr [ESP + 0x4c],EDI
JMP 0x000febc2
LEA ECX,[ESP + 0x9c]
SUB ESP,0xc
MOV EAX,EBP
PUSH dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x14]
CALL 0x000fa9a0
MOV dword ptr [ESP + 0x5c],EAX
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
JMP 0x000feb81
MOV EAX,dword ptr [EDI + 0x294]
TEST EAX,EAX
JZ 0x000ff300
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JLE 0x000fec4d
MOV ECX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x50],ESI
MOV EDI,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x48]
ADD EAX,ECX
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0x24],EAX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x8]
PUSH 0x1
PUSH ESI
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x50]
PUSH EDI
CALL 0x00033610
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000ff0a1
TEST ESI,ESI
JLE 0x000ff07e
MOV EDX,dword ptr [EDI + 0x2a8]
MOV ECX,dword ptr [EDI + 0x298]
MOV EBP,dword ptr [EDX + 0x34]
SHL ECX,0x3
TEST EBP,EBP
JZ 0x000ff07e
MOV EBP,dword ptr [EDX + 0x38]
FLDZ
XOR EDX,EDX
SHL EBP,0x3
NOP
LEA ESI,[ESI]
FST qword ptr [EAX + EBP*0x1]
ADD EDX,0x1
ADD EAX,ECX
CMP EDX,ESI
JNZ 0x000ff070
FSTP ST0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x8]
PUSH EDI
CALL 0x000323a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ff0a1
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0x24],EAX
JNZ 0x000ff028
MOV ESI,dword ptr [ESP + 0x50]
JMP 0x000fec4d
LEA ECX,[ESP + 0x9c]
SUB ESP,0xc
MOV EAX,EBP
PUSH dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x14]
CALL 0x000fa9a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000fed98
MOV ECX,dword ptr [ESP + 0x4]
SUB ESP,0x8
MOV EDX,dword ptr [ECX + 0x333c]
PUSH dword ptr [ESP + 0x8]
PUSH 0x3
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x000fab80
MOV EAX,dword ptr [ESP + 0x94]
MOV ECX,dword ptr [ESP + 0x90]
MOV EDX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [ESP + 0xac],ECX
MOV dword ptr [ESP + 0xb8],EDX
MOV dword ptr [ESP + 0xb4],EAX
ADD ESP,0x10
CMP dword ptr [ESP + 0x24],0x0
JS 0x000ff743
MOV EDX,dword ptr [ESP + 0x24]
CMP EAX,EDX
JGE 0x000ff790
SUB EDX,EAX
MOV dword ptr [ESP + 0x24],EAX
ADD EDX,EDI
MOV EDI,ECX
CMP EDX,ECX
CMOVNC EDI,EDX
MOV EAX,dword ptr [ESP + 0xa8]
MOV ECX,dword ptr [ESP + 0x5c]
MOV EDX,dword ptr [ESP + 0xa0]
CMP EAX,ECX
JGE 0x000ff771
SUB ECX,EAX
ADD ECX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x5c],EAX
CMP ECX,EDX
CMOVNC EDX,ECX
MOV dword ptr [ESP + 0x50],EDX
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JNS 0x000ff39d
SUB ESP,0x8
MOV EDX,EBP
PUSH dword ptr [ESP + 0x8]
PUSH 0x4
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x14]
CALL 0x000fab80
MOV EAX,dword ptr [ESP + 0x90]
MOV dword ptr [ESP + 0xac],EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [ESP + 0xb4],EAX
MOV EAX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0xb8],EAX
ADD ESP,0x10
JMP 0x000fed98
MOV EAX,dword ptr [EBP + 0x294]
TEST EAX,EAX
JZ 0x000ff320
MOV EAX,dword ptr [ESP + 0x50]
TEST EAX,EAX
JLE 0x000fed3f
MOV ECX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x64],ESI
ADD EAX,ECX
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0x58],EAX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x8]
PUSH 0x1
PUSH EDI
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x3c]
PUSH EBP
CALL 0x00033610
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000ff2a5
TEST EDI,EDI
JLE 0x000ff27e
MOV ESI,dword ptr [EBP + 0x298]
MOV EDX,dword ptr [EBP + 0x2a8]
LEA ECX,[ESI*0x8 + 0x0]
MOV ESI,dword ptr [EDX + 0x34]
TEST ESI,ESI
JZ 0x000ff27e
MOV ESI,dword ptr [EDX + 0x38]
FLDZ
XOR EDX,EDX
SHL ESI,0x3
MOV ESI,ESI
LEA EDI,[EDI]
FST qword ptr [EAX + ESI*0x1]
ADD EDX,0x1
ADD EAX,ECX
CMP EDX,EDI
JNZ 0x000ff270
FSTP ST0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x8]
PUSH EBP
CALL 0x000323a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ff2a5
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [ESP + 0x58]
JNZ 0x000ff220
MOV ESI,dword ptr [ESP + 0x64]
JMP 0x000fed3f
MOV EAX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0x54]
MOV ECX,dword ptr [ESP + 0x40]
ADD dword ptr [ESP + 0x10],0x1
MOV dword ptr [EAX],0x8
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + EDI*0x1 + 0x4],0x1
MOV EDI,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [EDI + ECX*0x1 + -0x10]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDI + ECX*0x1 + -0xc]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EDI + ECX*0x1 + -0x8]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EDI + ECX*0x1 + -0x4]
MOV dword ptr [ESI + 0xc],EAX
JMP 0x000fea50
SUB ESP,0x4
PUSH dword ptr [ESP + 0x4]
PUSH 0xb
PUSH dword ptr [ESP + 0x24]
CALL 0x000336b0
ADD ESP,0x10
JMP 0x000feffe
SUB ESP,0x4
PUSH dword ptr [ESP + 0x4]
PUSH 0xb
PUSH EBP
CALL 0x000336b0
ADD ESP,0x10
JMP 0x000ff1fe
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00032dd0
MOV ESI,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
MOV dword ptr [ESI],0x2
TEST EAX,EAX
JNZ 0x000fe9cd
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00032dd0
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX],0x2
JNZ 0x000fe9f5
MOV dword ptr [ESP + 0x34],EBP
XOR EBP,EBP
JMP 0x000fee89
TEST EBP,EBP
JZ 0x000fea09
JMP 0x000fe9f5
MOV EAX,dword ptr [EBP + 0x294]
TEST EAX,EAX
JZ 0x000ff75a
MOV EAX,dword ptr [ESP + 0x50]
TEST EAX,EAX
JLE 0x000ff18e
MOV EDX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x64],ESI
ADD EAX,EDX
MOV dword ptr [ESP + 0x8],EDX
MOV dword ptr [ESP + 0x58],EAX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x8]
PUSH 0x1
PUSH EDI
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x3c]
PUSH EBP
CALL 0x00033610
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000ff455
TEST EDI,EDI
JLE 0x000ff42e
MOV ESI,dword ptr [EBP + 0x298]
MOV EDX,dword ptr [EBP + 0x2a8]
LEA ECX,[ESI*0x8 + 0x0]
MOV ESI,dword ptr [EDX + 0x34]
TEST ESI,ESI
JZ 0x000ff42e
MOV ESI,dword ptr [EDX + 0x38]
FLDZ
XOR EDX,EDX
SHL ESI,0x3
MOV ESI,ESI
LEA EDI,[EDI]
FST qword ptr [EAX + ESI*0x1]
ADD EDX,0x1
ADD EAX,ECX
CMP EDI,EDX
JNZ 0x000ff420
FSTP ST0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x8]
PUSH EBP
CALL 0x000323a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ff455
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0x58],EAX
JNZ 0x000ff3d0
MOV ESI,dword ptr [ESP + 0x64]
JMP 0x000ff18e
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00032dd0
ADD ESP,0x10
CALL 0x00032f50
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x00031a70
ADD ESP,0x10
MOV EBP,EAX
CALL 0x000330d0
MOV dword ptr [ESP + 0x4],0x0
MOV dword ptr [ESP + 0x98],EAX
LEA EAX,[ESP + 0x98]
MOV dword ptr [ESP + 0x14],EAX
TEST EBP,EBP
JZ 0x000ff55b
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EBP
CALL 0x00030b90
ADD ESP,0x20
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000ff7a7
MOV dword ptr [EAX + 0x84],0x4
MOV EAX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP + 0x20]
SHL EAX,0x2
LEA ECX,[EDI + EAX*0x1]
CMP dword ptr [ECX],0x8
JZ 0x000ff5d0
MOV dword ptr [ESP + 0x8],ECX
SUB ESP,0x4
PUSH dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0xc]
SHL EAX,0x4
ADD EAX,dword ptr [ESP + 0x38]
PUSH EAX
PUSH ESI
CALL 0x00032850
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00032dd0
ADD ESP,0x10
TEST EDI,EDI
JZ 0x000ff7a7
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ECX]
MOV dword ptr [EDI + 0x240],EAX
CMP dword ptr [ECX],0x9
JZ 0x000ff598
SUB ESP,0xc
PUSH EBP
CALL 0x000319e0
POP EDX
POP ECX
MOV EBP,EAX
PUSH EDI
PUSH dword ptr [ESP + 0x20]
CALL 0x00030a60
ADD dword ptr [ESP + 0x14],0x1
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x000ff4b0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x000335b0
POP EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
POP EDX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00033ac8
POP ECX
PUSH dword ptr [ESP + 0xa4]
CALL 0x00031a70
ADD ESP,0x10
MOV EBP,EAX
JMP 0x000fe7b4
MOV dword ptr [EDI + 0x248],0x0
SUB ESP,0x8
MOV dword ptr [EDI + 0x240],0x1
PUSH EDI
PUSH dword ptr [ESP + 0x20]
CALL 0x00030a60
ADD dword ptr [ESP + 0x14],0x1
ADD ESP,0x10
JMP 0x000ff4b0
FLD qword ptr [EBX + 0xffec18d8]
LEA EDI,[EDI + EAX*0x1 + 0x4]
XOR ECX,ECX
MOV EAX,EBP
FSTP qword ptr [ESP + 0x18]
MOV EBP,ECX
JMP 0x000ff639
FSTP ST0
FDIVR dword ptr [EBX + 0xffec18b4]
FNSTCW word ptr [ESP + 0x76]
MOVZX EDX,word ptr [ESP + 0x76]
OR DH,0xc
MOV word ptr [ESP + 0x74],DX
FMULP
FLDCW word ptr [ESP + 0x74]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x76]
MOV EDX,dword ptr [ESP + 0x68]
SUB ESP,0xc
PUSH EAX
ADD EBP,EDX
CALL 0x000319e0
ADD ESP,0x10
MOV ECX,EDI
ADD EDI,0x4
ADD dword ptr [ESP + 0x4],0x1
CMP dword ptr [EDI + -0x4],0x8
JNZ 0x000ff6aa
IMUL EDX,dword ptr [EAX + 0x248],0x3e8
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x8],EDX
FILD qword ptr [ESP + 0x8]
FILD dword ptr [EAX + 0x250]
FLDZ
FLD ST1
FXCH
FUCOMIP ST0,ST2
JA 0x000ff6a0
FLD qword ptr [ESP + 0x18]
FLD qword ptr [EBX + 0xffec12d0]
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JNC 0x000ff5f0
FSTP ST1
FNSTCW word ptr [ESP + 0x76]
FMULP
MOVZX EDX,word ptr [ESP + 0x76]
OR DH,0xc
MOV word ptr [ESP + 0x74],DX
FLDCW word ptr [ESP + 0x74]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x76]
JMP 0x000ff617
FCHS
FLD qword ptr [EBX + 0xffec18e0]
JMP 0x000ff667
MOV EDI,EBP
MOV EBP,EAX
MOV dword ptr [ESP + 0xc],0x0
IMUL EAX,dword ptr [EAX + 0x248],0x3e8
MOV dword ptr [ESP + 0x8],EAX
FILD qword ptr [ESP + 0x8]
FILD dword ptr [EBP + 0x250]
FLDZ
FLD ST1
FXCH
FUCOMIP ST0,ST2
JA 0x000ff7de
FLD qword ptr [EBX + 0xffec18d8]
FLD qword ptr [EBX + 0xffec12d0]
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JC 0x000ff6fa
FSTP ST0
FDIVR dword ptr [EBX + 0xffec18b4]
JMP 0x000ff6fc
FSTP ST1
MOV dword ptr [ESI + 0x250],0x64
FNSTCW word ptr [ESP + 0x76]
FMULP
MOVZX EAX,word ptr [ESP + 0x76]
OR AH,0xc
MOV word ptr [ESP + 0x74],AX
FLDCW word ptr [ESP + 0x74]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x76]
MOV EAX,dword ptr [ESP + 0x68]
ADD EAX,EDI
MOV EDI,0x10624dd3
IMUL EAX,EAX,0x64
MUL EDI
SHR EDX,0x6
MOV dword ptr [ESI + 0x248],EDX
JMP 0x000ff4f1
MOV EDI,ECX
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x5c],EDX
MOV dword ptr [ESP + 0x50],ECX
JMP 0x000ff182
SUB ESP,0x4
PUSH dword ptr [ESP + 0x4]
PUSH 0xb
PUSH EBP
CALL 0x000336b0
ADD ESP,0x10
JMP 0x000ff3ab
SUB EAX,dword ptr [ESP + 0x5c]
MOV ECX,dword ptr [ESP + 0x50]
ADD EAX,EDX
CMP ECX,EAX
MOV dword ptr [ESP + 0xa0],EAX
CMOVNC EAX,ECX
MOV dword ptr [ESP + 0x50],EAX
JMP 0x000ff182
SUB EAX,dword ptr [ESP + 0x24]
ADD EAX,ECX
CMP EDI,EAX
MOV dword ptr [ESP + 0x9c],EAX
CMOVC EDI,EAX
JMP 0x000ff155
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x000335b0
POP ESI
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
POP EDI
PUSH dword ptr [ESP + 0x2c]
CALL 0x00033ac8
POP EBP
XOR EBP,EBP
PUSH dword ptr [ESP + 0xa4]
CALL 0x000317a0
ADD ESP,0x10
JMP 0x000fe7b4
FCHS
FLD qword ptr [EBX + 0xffec18e0]
JMP 0x000ff6e2
MOV EBP,dword ptr [ESP + 0x18]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
POP EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00033ac8
POP EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00032dd0
ADD ESP,0x10
JMP 0x000fe7b4
MOV EBP,dword ptr [ESP + 0x18]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
POP EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00033ac8
POP EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00032dd0
MOV dword ptr [ESP],EBP
XOR EBP,EBP
CALL 0x00032dd0
ADD ESP,0x10
JMP 0x000fe7b4
SUB ESP,0xc
XOR EBP,EBP
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
POP EDI
PUSH dword ptr [ESP + 0x2c]
CALL 0x00033ac8
ADD ESP,0x10
JMP 0x000fe7b4
SUB ESP,0xc
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffec156e]
PUSH EAX
PUSH 0x190
PUSH 0x3f4
JMP 0x000fe798
MOV EAX,dword ptr [ESP + 0x2c]
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffec156e]
PUSH EAX
PUSH 0x190
PUSH 0x3ed
JMP 0x000fe798
LEA EAX,[EBX + 0xffedaa88]
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH 0x3ca
PUSH EAX
LEA EAX,[EBX + 0xffec194d]
PUSH EAX
CALL 0x000313d0
CALL 0x002decd0
LEA EAX,[EBX + 0xffedaa88]
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH 0x3cf
PUSH EAX
LEA EAX,[EBX + 0xffec29d4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffedaa88]
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH 0x3ce
PUSH EAX
LEA EAX,[EBX + 0xffec1be4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffedaa88]
PUSH EAX
LEA EAX,[EBX + 0xffeda7e3]
PUSH 0x3cb
PUSH EAX
LEA EAX,[EBX + 0xffecc4b8]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 OptimizePlusImageLayers(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}\n\n" comment (function_definition "undefined4 OptimizePlusImageLayers(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}" type_identifier (function_declarator "OptimizePlusImageLayers(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int *local_c8;" primitive_type (pointer_declarator "*local_c8" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "longlong local_74;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xfe649;" (assignment_expression "uStack_14 = 0xfe649" identifier = number_literal) ;) (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("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\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("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");" (call_expression "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" identifier (argument_list "("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" ( (string_literal ""image != (const Image *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/layer.c"" " string_content ") , (string_literal ""OptimizeLayerFrames"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\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("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (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) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" identifier (argument_list "("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (expression_statement "iVar10 = GetFirstImageInList(param_1);" (assignment_expression "iVar10 = GetFirstImageInList(param_1)" identifier = (call_expression "GetFirstImageInList(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }" { (labeled_statement "LAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);" statement_identifier : (expression_statement "uVar24 = GetImageListLength(iVar10);" (assignment_expression "uVar24 = GetImageListLength(iVar10)" identifier = (call_expression "GetImageListLength(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;)) (expression_statement "puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);" (assignment_expression "puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20)" identifier = (cast_expression "(uint *)AcquireQuantumMemory(uVar24,0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar24,0x20)" identifier (argument_list "(uVar24,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" if (parenthesized_expression "(puVar12 == (uint *)0x0)" ( (binary_expression "puVar12 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }" { (expression_statement "pcVar26 = "MemoryAllocationFailed";" (assignment_expression "pcVar26 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "uVar25 = 400;" (assignment_expression "uVar25 = 400" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3ed;" (assignment_expression "uVar24 = 0x3ed" identifier = number_literal) ;) }) (else_clause "else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" else (compound_statement "{\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" { (expression_statement "uVar24 = GetImageListLength(param_1);" (assignment_expression "uVar24 = GetImageListLength(param_1)" identifier = (call_expression "GetImageListLength(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);" (assignment_expression "puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(uVar24,8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar24,8)" identifier (argument_list "(uVar24,8)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }" { (expression_statement "local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);" (assignment_expression "local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" identifier = (call_expression "CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" identifier (argument_list "(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 0x18)" * (cast_expression "(undefined4 *)(iVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar10 + 0x1c)" * (cast_expression "(undefined4 *)(iVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x1c)" ( (binary_expression "iVar10 + 0x1c" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }" { (expression_statement "*(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);" (assignment_expression "*(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200)" (pointer_expression "*(undefined4 *)(local_a8 + 0x200)" * (cast_expression "(undefined4 *)(local_a8 + 0x200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x200)" ( (binary_expression "local_a8 + 0x200" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x200)" * (cast_expression "(undefined4 *)(iVar10 + 0x200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x200)" ( (binary_expression "iVar10 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(undefined4 *)(iVar10 + 0x204);" (assignment_expression "uVar24 = *(undefined4 *)(iVar10 + 0x204)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x204)" * (cast_expression "(undefined4 *)(iVar10 + 0x204)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x204)" ( (binary_expression "iVar10 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(local_a8 + 0xbc) = 0;" (assignment_expression "*(undefined8 *)(local_a8 + 0xbc) = 0" (pointer_expression "*(undefined8 *)(local_a8 + 0xbc)" * (cast_expression "(undefined8 *)(local_a8 + 0xbc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0xbc)" ( (binary_expression "local_a8 + 0xbc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x208) = 0;" (assignment_expression "*(undefined4 *)(local_a8 + 0x208) = 0" (pointer_expression "*(undefined4 *)(local_a8 + 0x208)" * (cast_expression "(undefined4 *)(local_a8 + 0x208)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x208)" ( (binary_expression "local_a8 + 0x208" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x20c) = 0;" (assignment_expression "*(undefined4 *)(local_a8 + 0x20c) = 0" (pointer_expression "*(undefined4 *)(local_a8 + 0x20c)" * (cast_expression "(undefined4 *)(local_a8 + 0x20c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x20c)" ( (binary_expression "local_a8 + 0x20c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x204) = uVar24;" (assignment_expression "*(undefined4 *)(local_a8 + 0x204) = uVar24" (pointer_expression "*(undefined4 *)(local_a8 + 0x204)" * (cast_expression "(undefined4 *)(local_a8 + 0x204)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x204)" ( (binary_expression "local_a8 + 0x204" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(local_a8 + 0x240) = 1" (pointer_expression "*(undefined4 *)(local_a8 + 0x240)" * (cast_expression "(undefined4 *)(local_a8 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x240)" ( (binary_expression "local_a8 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(local_a8 + 0x84) = 4" (pointer_expression "*(undefined4 *)(local_a8 + 0x84)" * (cast_expression "(undefined4 *)(local_a8 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x84)" ( (binary_expression "local_a8 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "SetImageBackgroundColor(local_a8,param_2);" (call_expression "SetImageBackgroundColor(local_a8,param_2)" identifier (argument_list "(local_a8,param_2)" ( identifier , identifier ))) ;) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "*puVar12 = local_5c;" (assignment_expression "*puVar12 = local_5c" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = local_58;" (assignment_expression "puVar12[1] = local_58" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = local_54;" (assignment_expression "puVar12[2] = local_54" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = local_50;" (assignment_expression "puVar12[3] = local_50" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_d8 = GetNextImageInList(iVar10);" (assignment_expression "local_d8 = GetNextImageInList(iVar10)" identifier = (call_expression "GetNextImageInList(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }" if (parenthesized_expression "(local_d8 != 0)" ( (binary_expression "local_d8 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 1;" (assignment_expression "local_cc = 1" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);" do (compound_statement "{\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            }" { (expression_statement "puVar21 = puVar12 + local_cc * 4;" (assignment_expression "puVar21 = puVar12 + local_cc * 4" identifier = (binary_expression "puVar12 + local_cc * 4" identifier + (binary_expression "local_cc * 4" identifier * number_literal))) ;) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "*puVar21 = local_5c;" (assignment_expression "*puVar21 = local_5c" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_58;" (assignment_expression "puVar21[1] = local_58" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = local_54;" (assignment_expression "puVar21[2] = local_54" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_50;" (assignment_expression "puVar21[3] = local_50" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }" { (expression_statement "local_c8 = puVar13 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = puVar13 + local_cc + 0x3fffffff" identifier = (binary_expression "puVar13 + local_cc + 0x3fffffff" (binary_expression "puVar13 + local_cc" identifier + identifier) + number_literal)) ;) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (labeled_statement "LAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" statement_identifier : (if_statement "if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" if (parenthesized_expression "(local_cc == 1)" ( (binary_expression "local_cc == 1" identifier == number_literal) )) (compound_statement "{\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" { (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" { (labeled_statement "LAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);" statement_identifier : (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" identifier = (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier )))) ;)) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (if_statement "if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" if (parenthesized_expression "(iVar14 != 2)" ( (binary_expression "iVar14 != 2" identifier != number_literal) )) (compound_statement "{\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" { (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) (if_statement "if (iVar15 != 0) goto LAB_000fe9f5;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000fe9f5;" goto statement_identifier ;)) (goto_statement "goto LAB_000fea09;" goto statement_identifier ;) })) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = iVar15;" (assignment_expression "local_a8 = iVar15" identifier = identifier) ;) (labeled_statement "LAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;" statement_identifier : (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;)) (if_statement "if (local_a8 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" if (parenthesized_expression "(local_a8 == 0)" ( (binary_expression "local_a8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" { comment (expression_statement "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");" (call_expression "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" identifier (argument_list "("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" ( (string_literal ""prev_image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;) })) (labeled_statement "LAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;" statement_identifier : (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;)) (expression_statement "iVar10 = DestroyImage(iVar10);" (assignment_expression "iVar10 = DestroyImage(iVar10)" identifier = (call_expression "DestroyImage(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" identifier = identifier) ;) (if_statement "if (*local_c8 != 3) goto LAB_000fef38;" if (parenthesized_expression "(*local_c8 != 3)" ( (binary_expression "*local_c8 != 3" (pointer_expression "*local_c8" * identifier) != number_literal) )) (goto_statement "goto LAB_000fef38;" goto statement_identifier ;)) (if_statement "if (iVar20 == 0) goto LAB_000fee89;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;)) (labeled_statement "LAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);" statement_identifier : (expression_statement "iVar20 = DestroyImage(iVar15);" (assignment_expression "iVar20 = DestroyImage(iVar15)" identifier = (call_expression "DestroyImage(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;)) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (labeled_statement "LAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;" statement_identifier : (if_statement "if (iVar14 != 1) goto LAB_000fef60;" if (parenthesized_expression "(iVar14 != 1)" ( (binary_expression "iVar14 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000fef60;" goto statement_identifier ;))) (expression_statement "local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));" (assignment_expression "local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c))" identifier = (call_expression "ReferenceImage(*(undefined4 *)(local_d8 + 0x333c))" identifier (argument_list "(*(undefined4 *)(local_d8 + 0x333c))" ( (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" * (cast_expression "(undefined4 *)(local_d8 + 0x333c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x333c)" ( (binary_expression "local_d8 + 0x333c" identifier + number_literal) )))) )))) ;) (if_statement "if (local_a8 != 0) goto LAB_000fea38;" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000fea38;" goto statement_identifier ;)) (goto_statement "goto LAB_000ff84d;" goto statement_identifier ;) }))) (expression_statement "*local_c8 = 8;" (assignment_expression "*local_c8 = 8" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "puVar13[local_cc + 0x40000000] = 1;" (assignment_expression "puVar13[local_cc + 0x40000000] = 1" (subscript_expression "puVar13[local_cc + 0x40000000]" identifier [ (binary_expression "local_cc + 0x40000000" identifier + number_literal) ]) = number_literal) ;) (expression_statement "*puVar21 = puVar12[local_cc * 4 + -4];" (assignment_expression "*puVar21 = puVar12[local_cc * 4 + -4]" (pointer_expression "*puVar21" * identifier) = (subscript_expression "puVar12[local_cc * 4 + -4]" identifier [ (binary_expression "local_cc * 4 + -4" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar21[1] = puVar12[local_cc * 4 + -3];" (assignment_expression "puVar21[1] = puVar12[local_cc * 4 + -3]" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[local_cc * 4 + -3]" identifier [ (binary_expression "local_cc * 4 + -3" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar21[2] = puVar12[local_cc * 4 + -2];" (assignment_expression "puVar21[2] = puVar12[local_cc * 4 + -2]" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = (subscript_expression "puVar12[local_cc * 4 + -2]" identifier [ (binary_expression "local_cc * 4 + -2" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar21[3] = puVar12[local_cc * 4 + -1];" (assignment_expression "puVar21[3] = puVar12[local_cc * 4 + -1]" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = (subscript_expression "puVar12[local_cc * 4 + -1]" identifier [ (binary_expression "local_cc * 4 + -1" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) }) (else_clause "else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" else (compound_statement "{\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" { (expression_statement "iVar15 = FUN_000fa9a0(param_2);" (assignment_expression "iVar15 = FUN_000fa9a0(param_2)" identifier = (call_expression "FUN_000fa9a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar16 = puVar21[2];" (assignment_expression "uVar16 = puVar21[2]" identifier = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (expression_statement "local_c8 = puVar13 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = puVar13 + local_cc + 0x3fffffff" identifier = (binary_expression "puVar13 + local_cc + 0x3fffffff" (binary_expression "puVar13 + local_cc" identifier + identifier) + number_literal)) ;) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (if_statement "if ((int)uVar16 < 0) goto LAB_000fe9b6;" if (parenthesized_expression "((int)uVar16 < 0)" ( (binary_expression "(int)uVar16 < 0" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000fe9b6;" goto statement_identifier ;)) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" identifier = identifier) ;) (if_statement "if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  bVar23 = true;\n                  local_90 = 0;\n                }" { (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" else (compound_statement "{\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" { (expression_statement "local_90 = FUN_000fa9a0(param_2);" (assignment_expression "local_90 = FUN_000fa9a0(param_2)" identifier = (call_expression "FUN_000fa9a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "bVar23 = local_90 == 0;" (assignment_expression "bVar23 = local_90 == 0" identifier = (binary_expression "local_90 == 0" identifier == number_literal)) ;) }))) (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;) (if_statement "if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }" if (parenthesized_expression "(((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1]))" ( (binary_expression "((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])" (parenthesized_expression "((iVar15 != 0) && (bVar23))" ( (binary_expression "(iVar15 != 0) && (bVar23)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) && (parenthesized_expression "(bVar23)" ( identifier ))) )) || (parenthesized_expression "(local_40 * local_3c < *puVar21 * puVar21[1])" ( (binary_expression "local_40 * local_3c < *puVar21 * puVar21[1]" (binary_expression "local_40 * local_3c" identifier * identifier) < (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" * identifier) * (subscript_expression "puVar21[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }" { (expression_statement "*puVar21 = local_40;" (assignment_expression "*puVar21 = local_40" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_3c;" (assignment_expression "puVar21[1] = local_3c" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = local_38;" (assignment_expression "puVar21[2] = local_38" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_34;" (assignment_expression "puVar21[3] = local_34" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 3;" (assignment_expression "*local_c8 = 3" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "iVar15 = local_90;" (assignment_expression "iVar15 = local_90" identifier = identifier) ;) })) (expression_statement "local_90 = iVar15;" (assignment_expression "local_90 = iVar15" identifier = identifier) ;) (expression_statement "iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);" (assignment_expression "iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier = (call_expression "CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier (argument_list "(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" ( (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" * (cast_expression "(undefined4 *)(local_d8 + 0x333c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x333c)" ( (binary_expression "local_d8 + 0x333c" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }" { (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar10 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar10 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar10 + 0x84)" * (cast_expression "(undefined4 *)(iVar10 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x84)" ( (binary_expression "iVar10 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000fab80(3,param_2);" (call_expression "FUN_000fab80(3,param_2)" identifier (argument_list "(3,param_2)" ( number_literal , identifier ))) ;) (expression_statement "uVar8 = local_24;" (assignment_expression "uVar8 = local_24" identifier = identifier) ;) (expression_statement "uVar7 = local_28;" (assignment_expression "uVar7 = local_28" identifier = identifier) ;) (expression_statement "uVar22 = local_2c;" (assignment_expression "uVar22 = local_2c" identifier = identifier) ;) (expression_statement "uVar16 = local_30;" (assignment_expression "uVar16 = local_30" identifier = identifier) ;) (expression_statement "local_94 = local_30;" (assignment_expression "local_94 = local_30" identifier = identifier) ;) (expression_statement "local_98 = local_2c;" (assignment_expression "local_98 = local_2c" identifier = identifier) ;) (if_statement "if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(-1 < (int)local_28)" ( (binary_expression "-1 < (int)local_28" number_literal < (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x294) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x294) == 0" (pointer_expression "*(int *)(iVar10 + 0x294)" * (cast_expression "(int *)(iVar10 + 0x294)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x294)" ( (binary_expression "iVar10 + 0x294" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }" { (expression_statement "SetImageAlphaChannel(iVar10,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar10,0xb,param_2)" identifier (argument_list "(iVar10,0xb,param_2)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }" if (parenthesized_expression "(0 < (int)uVar22)" ( (binary_expression "0 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }" { (expression_statement "local_d4 = uVar8;" (assignment_expression "local_d4 = uVar8" identifier = identifier) ;) (while_statement "while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }" while (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0)" ( (comma_expression "iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2)" identifier (argument_list "(iVar10,uVar7,local_d4,uVar16,1,param_2)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }" { (if_statement "if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }" if (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }" { (expression_statement "iVar15 = *(int *)(iVar10 + 0x298);" (assignment_expression "iVar15 = *(int *)(iVar10 + 0x298)" identifier = (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }" if (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar10 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar10 + 0x2a8)" * (cast_expression "(int *)(iVar10 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2a8)" ( (binary_expression "iVar10 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }" { (expression_statement "iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar10 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar10 + 0x2a8)" * (cast_expression "(int *)(iVar10 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2a8)" ( (binary_expression "iVar10 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);" do (compound_statement "{\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          }" { (expression_statement "*(undefined8 *)(iVar20 + iVar14 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar14 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar14 * 8)" * (cast_expression "(undefined8 *)(iVar20 + iVar14 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar14 * 8)" ( (binary_expression "iVar20 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + iVar15 * 8;" (assignment_expression "iVar20 = iVar20 + iVar15 * 8" identifier = (binary_expression "iVar20 + iVar15 * 8" identifier + (binary_expression "iVar15 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(uVar18 != uVar16)" ( (binary_expression "uVar18 != uVar16" identifier != identifier) )) ;) })) })) (expression_statement "iVar20 = SyncAuthenticPixels(iVar10,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar10,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar10,param_2)" identifier (argument_list "(iVar10,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;" if (parenthesized_expression "((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))" ( (binary_expression "(iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4)" ( (comma_expression "local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "uVar22 + uVar8 == local_d4" (binary_expression "uVar22 + uVar8" identifier + identifier) == identifier)) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (if_statement "if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" if (parenthesized_expression "((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22))" ( (binary_expression "(local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)" (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) && (parenthesized_expression "(*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)" ( (binary_expression "*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22" (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" * identifier) * (subscript_expression "puVar21[1]" identifier [ number_literal ])) <= (binary_expression "local_5c * local_58 + uVar16 * uVar22" (binary_expression "local_5c * local_58" identifier * identifier) + (binary_expression "uVar16 * uVar22" identifier * identifier))) ))) )) (compound_statement "{\n                  local_98 = 0;\n                  local_94 = 0;\n                }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" else (compound_statement "{\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" { (expression_statement "*puVar21 = local_5c;" (assignment_expression "*puVar21 = local_5c" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_58;" (assignment_expression "puVar21[1] = local_58" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = local_54;" (assignment_expression "puVar21[2] = local_54" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_50;" (assignment_expression "puVar21[3] = local_50" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" * identifier) = number_literal) ;) }))) (expression_statement "iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);" (assignment_expression "iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier = (call_expression "CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier (argument_list "(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" ( (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" * (cast_expression "(undefined4 *)(local_d8 + 0x333c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x333c)" ( (binary_expression "local_d8 + 0x333c" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }" { (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "DestroyImage(iVar10);" (call_expression "DestroyImage(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar15 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar15 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar15 + 0x84)" * (cast_expression "(undefined4 *)(iVar15 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x84)" ( (binary_expression "iVar15 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1 = puVar12 + local_cc * 4 + -4;" (assignment_expression "puVar1 = puVar12 + local_cc * 4 + -4" identifier = (binary_expression "puVar12 + local_cc * 4 + -4" (binary_expression "puVar12 + local_cc * 4" identifier + (binary_expression "local_cc * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "uVar16 = puVar1[1];" (assignment_expression "uVar16 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar1;" (assignment_expression "uVar22 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_b8 = puVar1[2];" (assignment_expression "local_b8 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_80 = puVar1[3];" (assignment_expression "local_80 = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(-1 < (int)local_b8)" ( (binary_expression "-1 < (int)local_b8" number_literal < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }" if (parenthesized_expression "(*(int *)(iVar15 + 0x294) == 0)" ( (binary_expression "*(int *)(iVar15 + 0x294) == 0" (pointer_expression "*(int *)(iVar15 + 0x294)" * (cast_expression "(int *)(iVar15 + 0x294)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x294)" ( (binary_expression "iVar15 + 0x294" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }" { (expression_statement "SetImageAlphaChannel(iVar15,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar15,0xb,param_2)" identifier (argument_list "(iVar15,0xb,param_2)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }" if (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }" { (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" identifier = identifier) ;) (while_statement "while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }" while (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0)" ( (comma_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier (argument_list "(iVar15,local_b8,local_d4,uVar22,1,param_2)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }" { (if_statement "if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }" if (parenthesized_expression "(0 < (int)uVar22)" ( (binary_expression "0 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }" { (expression_statement "iVar14 = *(int *)(iVar15 + 0x298);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x298)" identifier = (pointer_expression "*(int *)(iVar15 + 0x298)" * (cast_expression "(int *)(iVar15 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x298)" ( (binary_expression "iVar15 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }" if (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }" { (expression_statement "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);" do (compound_statement "{\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          }" { (expression_statement "*(undefined8 *)(iVar20 + iVar2 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar2 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar2 * 8)" * (cast_expression "(undefined8 *)(iVar20 + iVar2 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar2 * 8)" ( (binary_expression "iVar20 + iVar2 * 8" identifier + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + iVar14 * 8;" (assignment_expression "iVar20 = iVar20 + iVar14 * 8" identifier = (binary_expression "iVar20 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(uVar18 != uVar22)" ( (binary_expression "uVar18 != uVar22" identifier != identifier) )) ;) })) })) (expression_statement "iVar20 = SyncAuthenticPixels(iVar15,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar15,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar15,param_2)" identifier (argument_list "(iVar15,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;" if (parenthesized_expression "((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))" ( (binary_expression "(iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80)" ( (comma_expression "local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "local_d4 == uVar16 + local_80" identifier == (binary_expression "uVar16 + local_80" identifier + identifier))) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" identifier = identifier) ;) (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" identifier = identifier) ;) (if_statement "if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }" if (parenthesized_expression "((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0))" ( (binary_expression "(-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)" (parenthesized_expression "(-1 < (int)local_54)" ( (binary_expression "-1 < (int)local_54" number_literal < (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)" ( (comma_expression "iVar20 = FUN_000fa9a0(param_2), iVar20 != 0" (assignment_expression "iVar20 = FUN_000fa9a0(param_2)" identifier = (call_expression "FUN_000fa9a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }" { (expression_statement "FUN_000fab80(3,param_2);" (call_expression "FUN_000fab80(3,param_2)" identifier (argument_list "(3,param_2)" ( number_literal , identifier ))) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (if_statement "if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" if (parenthesized_expression "((int)local_b8 < 0)" ( (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }" { (expression_statement "local_8c = local_58;" (assignment_expression "local_8c = local_58" identifier = identifier) ;) (expression_statement "uVar22 = local_5c;" (assignment_expression "uVar22 = local_5c" identifier = identifier) ;) (expression_statement "local_b8 = local_54;" (assignment_expression "local_b8 = local_54" identifier = identifier) ;) (expression_statement "local_80 = local_50;" (assignment_expression "local_80 = local_50" identifier = identifier) ;) }) (else_clause "else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" { (if_statement "if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" if (parenthesized_expression "((int)local_54 < (int)local_b8)" ( (binary_expression "(int)local_54 < (int)local_b8" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }" { (expression_statement "iVar20 = local_b8 - local_54;" (assignment_expression "iVar20 = local_b8 - local_54" identifier = (binary_expression "local_b8 - local_54" identifier - identifier)) ;) (expression_statement "local_b8 = local_54;" (assignment_expression "local_b8 = local_54" identifier = identifier) ;) (expression_statement "uVar18 = iVar20 + uVar22;" (assignment_expression "uVar18 = iVar20 + uVar22" identifier = (binary_expression "iVar20 + uVar22" identifier + identifier)) ;) (expression_statement "uVar22 = local_5c;" (assignment_expression "uVar22 = local_5c" identifier = identifier) ;) (if_statement "if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }" if (parenthesized_expression "(local_5c <= uVar18)" ( (binary_expression "local_5c <= uVar18" identifier <= identifier) )) (compound_statement "{\n                        uVar22 = uVar18;\n                      }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) })) }) (else_clause "else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" else (compound_statement "{\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" { (expression_statement "local_40 = (local_54 - local_b8) + local_5c;" (assignment_expression "local_40 = (local_54 - local_b8) + local_5c" identifier = (binary_expression "(local_54 - local_b8) + local_5c" (parenthesized_expression "(local_54 - local_b8)" ( (binary_expression "local_54 - local_b8" identifier - identifier) )) + identifier)) ;) (if_statement "if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }" if (parenthesized_expression "(uVar22 < local_40)" ( (binary_expression "uVar22 < local_40" identifier < identifier) )) (compound_statement "{\n                        uVar22 = local_40;\n                      }" { (expression_statement "uVar22 = local_40;" (assignment_expression "uVar22 = local_40" identifier = identifier) ;) })) }))) (if_statement "if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" if (parenthesized_expression "((int)local_50 < (int)local_80)" ( (binary_expression "(int)local_50 < (int)local_80" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" { (expression_statement "uVar16 = (local_80 - local_50) + uVar16;" (assignment_expression "uVar16 = (local_80 - local_50) + uVar16" identifier = (binary_expression "(local_80 - local_50) + uVar16" (parenthesized_expression "(local_80 - local_50)" ( (binary_expression "local_80 - local_50" identifier - identifier) )) + identifier)) ;) (expression_statement "local_80 = local_50;" (assignment_expression "local_80 = local_50" identifier = identifier) ;) (expression_statement "local_8c = local_58;" (assignment_expression "local_8c = local_58" identifier = identifier) ;) (if_statement "if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }" if (parenthesized_expression "(local_58 <= uVar16)" ( (binary_expression "local_58 <= uVar16" identifier <= identifier) )) (compound_statement "{\n                        local_8c = uVar16;\n                      }" { (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" identifier = identifier) ;) })) }) (else_clause "else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" else (compound_statement "{\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" { (expression_statement "local_3c = (local_50 - local_80) + local_58;" (assignment_expression "local_3c = (local_50 - local_80) + local_58" identifier = (binary_expression "(local_50 - local_80) + local_58" (parenthesized_expression "(local_50 - local_80)" ( (binary_expression "local_50 - local_80" identifier - identifier) )) + identifier)) ;) (expression_statement "local_8c = local_3c;" (assignment_expression "local_8c = local_3c" identifier = identifier) ;) (if_statement "if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }" if (parenthesized_expression "(local_3c <= uVar16)" ( (binary_expression "local_3c <= uVar16" identifier <= identifier) )) (compound_statement "{\n                        local_8c = uVar16;\n                      }" { (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" identifier = identifier) ;) })) }))) }))) (if_statement "if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" if (parenthesized_expression "(-1 < (int)local_b8)" ( (binary_expression "-1 < (int)local_b8" number_literal < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" { (if_statement "if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }" if (parenthesized_expression "(*(int *)(iVar15 + 0x294) == 0)" ( (binary_expression "*(int *)(iVar15 + 0x294) == 0" (pointer_expression "*(int *)(iVar15 + 0x294)" * (cast_expression "(int *)(iVar15 + 0x294)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x294)" ( (binary_expression "iVar15 + 0x294" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }" { (expression_statement "SetImageAlphaChannel(iVar15,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar15,0xb,param_2)" identifier (argument_list "(iVar15,0xb,param_2)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" if (parenthesized_expression "(0 < (int)local_8c)" ( (binary_expression "0 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" { (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" identifier = identifier) ;) (while_statement "while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" while (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0)" ( (comma_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier (argument_list "(iVar15,local_b8,local_d4,uVar22,1,param_2)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" { (if_statement "if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }" if (parenthesized_expression "(0 < (int)uVar22)" ( (binary_expression "0 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }" { (expression_statement "iVar14 = *(int *)(iVar15 + 0x298);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x298)" identifier = (pointer_expression "*(int *)(iVar15 + 0x298)" * (cast_expression "(int *)(iVar15 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x298)" ( (binary_expression "iVar15 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }" if (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }" { (expression_statement "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);" do (compound_statement "{\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            }" { (expression_statement "*(undefined8 *)(iVar20 + iVar2 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar2 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar2 * 8)" * (cast_expression "(undefined8 *)(iVar20 + iVar2 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar2 * 8)" ( (binary_expression "iVar20 + iVar2 * 8" identifier + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + iVar14 * 8;" (assignment_expression "iVar20 = iVar20 + iVar14 * 8" identifier = (binary_expression "iVar20 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(uVar22 != uVar16)" ( (binary_expression "uVar22 != uVar16" identifier != identifier) )) ;) })) })) (expression_statement "iVar20 = SyncAuthenticPixels(iVar15,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar15,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar15,param_2)" identifier (argument_list "(iVar15,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;" if (parenthesized_expression "((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4))" ( (binary_expression "(iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" ( (comma_expression "local_d4 = local_d4 + 1, local_8c + local_80 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "local_8c + local_80 == local_d4" (binary_expression "local_8c + local_80" identifier + identifier) == identifier)) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "FUN_000fab80(4,param_2);" (call_expression "FUN_000fab80(4,param_2)" identifier (argument_list "(4,param_2)" ( number_literal , identifier ))) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" identifier = identifier) ;) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) })) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) (if_statement "if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" if (parenthesized_expression "(local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1])" ( (binary_expression "local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]" (binary_expression "local_3c * local_40 + local_8c * uVar22" (binary_expression "local_3c * local_40" identifier * identifier) + (binary_expression "local_8c * uVar22" identifier * identifier)) < (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]" (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1]" (binary_expression "local_94 * local_98" identifier * identifier) + (binary_expression "*puVar1 * puVar1[1]" (pointer_expression "*puVar1" * identifier) * (subscript_expression "puVar1[1]" identifier [ number_literal ]))) + (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" * identifier) * (subscript_expression "puVar21[1]" identifier [ number_literal ])))) )) (compound_statement "{\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" { (expression_statement "*puVar1 = uVar22;" (assignment_expression "*puVar1 = uVar22" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_8c;" (assignment_expression "puVar1[1] = local_8c" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_b8;" (assignment_expression "puVar1[2] = local_b8" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_80;" (assignment_expression "puVar1[3] = local_80" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[1] = local_3c;" (assignment_expression "puVar21[1] = local_3c" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar21 = local_40;" (assignment_expression "*puVar21 = local_40" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[2] = local_38;" (assignment_expression "puVar21[2] = local_38" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_34;" (assignment_expression "puVar21[3] = local_34" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" if (parenthesized_expression "(iVar14 != 9)" ( (binary_expression "iVar14 != 9" identifier != number_literal) )) (compound_statement "{\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" { (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;) })) (expression_statement "iVar10 = DestroyImage(iVar10);" (assignment_expression "iVar10 = DestroyImage(iVar10)" identifier = (call_expression "DestroyImage(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (if_statement "if (iVar10 != 0) goto LAB_000fe9cd;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;)) (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" identifier = (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier )))) ;) (if_statement "if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }" if (parenthesized_expression "(*local_c8 == 2)" ( (binary_expression "*local_c8 == 2" (pointer_expression "*local_c8" * identifier) == number_literal) )) (compound_statement "{\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = iVar15;" (assignment_expression "local_a8 = iVar15" identifier = identifier) ;) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;) })) (goto_statement "goto LAB_000fe9f5;" goto statement_identifier ;) })) (if_statement "if (iVar14 != 9) goto LAB_000fe9cd;" if (parenthesized_expression "(iVar14 != 9)" ( (binary_expression "iVar14 != 9" identifier != number_literal) )) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;)) (expression_statement "iVar20 = DestroyImage(iVar15);" (assignment_expression "iVar20 = DestroyImage(iVar15)" identifier = (call_expression "DestroyImage(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "puVar12[local_cc * 4 + 4] = *puVar21;" (assignment_expression "puVar12[local_cc * 4 + 4] = *puVar21" (subscript_expression "puVar12[local_cc * 4 + 4]" identifier [ (binary_expression "local_cc * 4 + 4" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar12[local_cc * 4 + 5] = puVar21[1];" (assignment_expression "puVar12[local_cc * 4 + 5] = puVar21[1]" (subscript_expression "puVar12[local_cc * 4 + 5]" identifier [ (binary_expression "local_cc * 4 + 5" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[local_cc * 4 + 6] = puVar21[2];" (assignment_expression "puVar12[local_cc * 4 + 6] = puVar21[2]" (subscript_expression "puVar12[local_cc * 4 + 6]" identifier [ (binary_expression "local_cc * 4 + 6" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (expression_statement "puVar12[local_cc * 4 + 7] = puVar21[3];" (assignment_expression "puVar12[local_cc * 4 + 7] = puVar21[3]" (subscript_expression "puVar12[local_cc * 4 + 7]" identifier [ (binary_expression "local_cc * 4 + 7" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar21[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar21 = local_94;" (assignment_expression "*puVar21 = local_94" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_98;" (assignment_expression "puVar21[1] = local_98" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = uVar7;" (assignment_expression "puVar21[2] = uVar7" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = uVar8;" (assignment_expression "puVar21[3] = uVar8" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "puVar13[local_cc + 0x40000000] = 2;" (assignment_expression "puVar13[local_cc + 0x40000000] = 2" (subscript_expression "puVar13[local_cc + 0x40000000]" identifier [ (binary_expression "local_cc + 0x40000000" identifier + number_literal) ]) = number_literal) ;) (expression_statement "local_a0 = local_cc + 0x40000000;" (assignment_expression "local_a0 = local_cc + 0x40000000" identifier = (binary_expression "local_cc + 0x40000000" identifier + number_literal)) ;) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" identifier = (binary_expression "local_cc + 1" identifier + number_literal)) ;) (expression_statement "local_a8 = iVar10;" (assignment_expression "local_a8 = iVar10" identifier = identifier) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000fee89:\n                local_c8 = puVar13 + local_a0;" statement_identifier : (expression_statement "local_c8 = puVar13 + local_a0;" (assignment_expression "local_c8 = puVar13 + local_a0" identifier = (binary_expression "puVar13 + local_a0" identifier + identifier)) ;)) (labeled_statement "LAB_000fea38:\n                puVar13[local_cc] = *local_c8;" statement_identifier : (expression_statement "puVar13[local_cc] = *local_c8;" (assignment_expression "puVar13[local_cc] = *local_c8" (subscript_expression "puVar13[local_cc]" identifier [ identifier ]) = (pointer_expression "*local_c8" * identifier)) ;)) }))) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" identifier = (binary_expression "local_cc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = GetNextImageInList(local_d8);" (assignment_expression "local_d8 = GetNextImageInList(local_d8)" identifier = (call_expression "GetNextImageInList(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;) }) while (parenthesized_expression "(local_d8 != 0)" ( (binary_expression "local_d8 != 0" identifier != number_literal) )) ;) })) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "uVar24 = AcquireExceptionInfo();" (assignment_expression "uVar24 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = GetFirstImageInList(param_1);" (assignment_expression "iVar10 = GetFirstImageInList(param_1)" identifier = (call_expression "GetFirstImageInList(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_44 = NewImageList();" (assignment_expression "local_44 = NewImageList()" identifier = (call_expression "NewImageList()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (labeled_statement "joined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" statement_identifier : (if_statement "if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" { (do_statement "do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );" do (compound_statement "{\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            }" { (expression_statement "iVar20 = CloneImage(iVar10,0,0,1,param_2);" (assignment_expression "iVar20 = CloneImage(iVar10,0,0,1,param_2)" identifier = (call_expression "CloneImage(iVar10,0,0,1,param_2)" identifier (argument_list "(iVar10,0,0,1,param_2)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }" { (labeled_statement "LAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);" statement_identifier : (expression_statement "DestroyExceptionInfo(uVar24);" (call_expression "DestroyExceptionInfo(uVar24)" identifier (argument_list "(uVar24)" ( identifier ))) ;)) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "DestroyImageList(local_44);" (call_expression "DestroyImageList(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar20 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar20 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar20 + 0x84)" * (cast_expression "(undefined4 *)(iVar20 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x84)" ( (binary_expression "iVar20 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" identifier = identifier) ;) (expression_statement "piVar17 = puVar13 + local_d8;" (assignment_expression "piVar17 = puVar13 + local_d8" identifier = (binary_expression "puVar13 + local_d8" identifier + identifier)) ;) (if_statement "if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }" if (parenthesized_expression "(*piVar17 == 8)" ( (binary_expression "*piVar17 == 8" (pointer_expression "*piVar17" * identifier) == number_literal) )) (compound_statement "{\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "piVar9 = puVar13 + local_d8 + 1;" (assignment_expression "piVar9 = puVar13 + local_d8 + 1" identifier = (binary_expression "puVar13 + local_d8 + 1" (binary_expression "puVar13 + local_d8" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);" do (compound_statement "{\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                }" { (expression_statement "piVar17 = piVar9;" (assignment_expression "piVar17 = piVar9" identifier = identifier) ;) (expression_statement "dVar4 = (double)*(int *)(iVar10 + 0x250);" (assignment_expression "dVar4 = (double)*(int *)(iVar10 + 0x250)" identifier = (cast_expression "(double)*(int *)(iVar10 + 0x250)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar10 + 0x250)" * (cast_expression "(int *)(iVar10 + 0x250)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x250)" ( (binary_expression "iVar10 + 0x250" identifier + number_literal) )))))) ;) (expression_statement "dVar3 = dVar6;" (assignment_expression "dVar3 = dVar6" identifier = identifier) ;) (expression_statement "dVar5 = dVar4;" (assignment_expression "dVar5 = dVar4" identifier = identifier) ;) (if_statement "if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" if (parenthesized_expression "(dVar4 < 0.0)" ( (binary_expression "dVar4 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" { (expression_statement "dVar3 = DAT_002df8e0;" (assignment_expression "dVar3 = DAT_002df8e0" identifier = identifier) ;) (expression_statement "dVar5 = -dVar4;" (assignment_expression "dVar5 = -dVar4" identifier = (unary_expression "-dVar4" - identifier)) ;) })) (if_statement "if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" if (parenthesized_expression "(DAT_002df2d0 <= dVar5)" ( (binary_expression "DAT_002df2d0 <= dVar5" identifier <= identifier) )) (compound_statement "{\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" { (expression_statement "dVar3 = (double)DAT_002df8b4 / dVar4;" (assignment_expression "dVar3 = (double)DAT_002df8b4 / dVar4" identifier = (binary_expression "(double)DAT_002df8b4 / dVar4" (cast_expression "(double)DAT_002df8b4" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) })) (expression_statement "local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));" (assignment_expression "local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" identifier = (cast_expression "(longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" identifier (argument_list "(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" ( (binary_expression "dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000)" identifier * (cast_expression "(double)(uint)(*(int *)(iVar10 + 0x248) * 1000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(uint)(*(int *)(iVar10 + 0x248) * 1000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar10 + 0x248) * 1000)" ( (binary_expression "*(int *)(iVar10 + 0x248) * 1000" (pointer_expression "*(int *)(iVar10 + 0x248)" * (cast_expression "(int *)(iVar10 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x248)" ( (binary_expression "iVar10 + 0x248" identifier + number_literal) )))) * number_literal) ))))) ))))) ;) (expression_statement "iVar15 = iVar15 + (int)local_74;" (assignment_expression "iVar15 = iVar15 + (int)local_74" identifier = (binary_expression "iVar15 + (int)local_74" identifier + (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = GetNextImageInList(iVar10);" (assignment_expression "iVar10 = GetNextImageInList(iVar10)" identifier = (call_expression "GetNextImageInList(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" identifier = (binary_expression "local_d8 + 1" identifier + number_literal)) ;) (expression_statement "piVar9 = piVar17 + 1;" (assignment_expression "piVar9 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar17 == 8)" ( (binary_expression "*piVar17 == 8" (pointer_expression "*piVar17" * identifier) == number_literal) )) ;) (expression_statement "iVar14 = *(int *)(iVar10 + 0x248);" (assignment_expression "iVar14 = *(int *)(iVar10 + 0x248)" identifier = (pointer_expression "*(int *)(iVar10 + 0x248)" * (cast_expression "(int *)(iVar10 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x248)" ( (binary_expression "iVar10 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar3 = (double)*(int *)(iVar10 + 0x250);" (assignment_expression "dVar3 = (double)*(int *)(iVar10 + 0x250)" identifier = (cast_expression "(double)*(int *)(iVar10 + 0x250)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar10 + 0x250)" * (cast_expression "(int *)(iVar10 + 0x250)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x250)" ( (binary_expression "iVar10 + 0x250" identifier + number_literal) )))))) ;) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" identifier = identifier) ;) (expression_statement "dVar4 = dVar3;" (assignment_expression "dVar4 = dVar3" identifier = identifier) ;) (if_statement "if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" if (parenthesized_expression "(dVar3 < 0.0)" ( (binary_expression "dVar3 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" { (expression_statement "dVar6 = DAT_002df8e0;" (assignment_expression "dVar6 = DAT_002df8e0" identifier = identifier) ;) (expression_statement "dVar4 = -dVar3;" (assignment_expression "dVar4 = -dVar3" identifier = (unary_expression "-dVar3" - identifier)) ;) })) (if_statement "if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" if (parenthesized_expression "(DAT_002df2d0 <= dVar4)" ( (binary_expression "DAT_002df2d0 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" { (expression_statement "dVar6 = (double)DAT_002df8b4 / dVar3;" (assignment_expression "dVar6 = (double)DAT_002df8b4 / dVar3" identifier = (binary_expression "(double)DAT_002df8b4 / dVar3" (cast_expression "(double)DAT_002df8b4" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) })) (expression_statement "*(undefined4 *)(iVar20 + 0x250) = 100;" (assignment_expression "*(undefined4 *)(iVar20 + 0x250) = 100" (pointer_expression "*(undefined4 *)(iVar20 + 0x250)" * (cast_expression "(undefined4 *)(iVar20 + 0x250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x250)" ( (binary_expression "iVar20 + 0x250" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));" (assignment_expression "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" (field_expression "local_74._0_4_" identifier . field_identifier) = (cast_expression "(int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" identifier (argument_list "(dVar6 * (double)(uint)(iVar14 * 1000))" ( (binary_expression "dVar6 * (double)(uint)(iVar14 * 1000)" identifier * (cast_expression "(double)(uint)(iVar14 * 1000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(uint)(iVar14 * 1000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 * 1000)" ( (binary_expression "iVar14 * 1000" identifier * number_literal) ))))) )))))) ;) (expression_statement "*(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;" (assignment_expression "*(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000" (pointer_expression "*(uint *)(iVar20 + 0x248)" * (cast_expression "(uint *)(iVar20 + 0x248)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x248)" ( (binary_expression "iVar20 + 0x248" identifier + number_literal) )))) = (binary_expression "(uint)(((int)local_74 + iVar15) * 100) / 1000" (call_expression "(uint)(((int)local_74 + iVar15) * 100)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)local_74 + iVar15) * 100)" ( (binary_expression "((int)local_74 + iVar15) * 100" (parenthesized_expression "((int)local_74 + iVar15)" ( (binary_expression "(int)local_74 + iVar15" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )) * number_literal) ))) / number_literal)) ;) })) (expression_statement "iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);" (assignment_expression "iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24)" identifier = (call_expression "CropImage(iVar20,puVar12 + local_d8 * 4,uVar24)" identifier (argument_list "(iVar20,puVar12 + local_d8 * 4,uVar24)" ( identifier , (binary_expression "puVar12 + local_d8 * 4" identifier + (binary_expression "local_d8 * 4" identifier * number_literal)) , identifier )))) ;) (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" identifier (argument_list "(iVar20)" ( identifier ))) ;) (if_statement "if (iVar15 == 0) goto LAB_000ff7a7;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ff7a7;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar15 + 0x240) = *piVar17;" (assignment_expression "*(int *)(iVar15 + 0x240) = *piVar17" (pointer_expression "*(int *)(iVar15 + 0x240)" * (cast_expression "(int *)(iVar15 + 0x240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x240)" ( (binary_expression "iVar15 + 0x240" identifier + number_literal) )))) = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if (*piVar17 != 9) goto code_r0x000ff534;" if (parenthesized_expression "(*piVar17 != 9)" ( (binary_expression "*piVar17 != 9" (pointer_expression "*piVar17" * identifier) != number_literal) )) (goto_statement "goto code_r0x000ff534;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar15 + 0x248) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x248) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x248)" * (cast_expression "(undefined4 *)(iVar15 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x248)" ( (binary_expression "iVar15 + 0x248" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar15 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar15 + 0x240)" * (cast_expression "(undefined4 *)(iVar15 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x240)" ( (binary_expression "iVar15 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "AppendImageToList(&local_44,iVar15);" (call_expression "AppendImageToList(&local_44,iVar15)" identifier (argument_list "(&local_44,iVar15)" ( (pointer_expression "&local_44" & identifier) , identifier ))) ;) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" identifier = (binary_expression "local_d8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DestroyExceptionInfo(uVar24);" (call_expression "DestroyExceptionInfo(uVar24)" identifier (argument_list "(uVar24)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "uVar19 = GetFirstImageInList(local_44);" (assignment_expression "uVar19 = GetFirstImageInList(local_44)" identifier = (call_expression "GetFirstImageInList(local_44)" identifier (argument_list "(local_44)" ( identifier )))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (labeled_statement "LAB_000ff84d:\n        uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "pcVar26 = "MemoryAllocationFailed";" (assignment_expression "pcVar26 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "uVar25 = 400;" (assignment_expression "uVar25 = 400" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3f4;" (assignment_expression "uVar24 = 0x3f4" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" else (compound_statement "{\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" { (expression_statement "iVar20 = *(int *)(iVar10 + 0x18);" (assignment_expression "iVar20 = *(int *)(iVar10 + 0x18)" identifier = (pointer_expression "*(int *)(iVar10 + 0x18)" * (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" if (parenthesized_expression "((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c)))" ( (binary_expression "(iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))" (parenthesized_expression "(iVar20 == *(int *)(param_1 + 0x18))" ( (binary_expression "iVar20 == *(int *)(param_1 + 0x18)" identifier == (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))" ( (comma_expression "iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c)" (assignment_expression "iVar15 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) , (binary_expression "iVar15 == *(int *)(iVar10 + 0x1c)" identifier == (pointer_expression "*(int *)(iVar10 + 0x1c)" * (cast_expression "(int *)(iVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x1c)" ( (binary_expression "iVar10 + 0x1c" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }" { (if_statement "if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)))))" ( (binary_expression "(*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))" (parenthesized_expression "(*(int *)(iVar10 + 0x208) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x208) == 0" (pointer_expression "*(int *)(iVar10 + 0x208)" * (cast_expression "(int *)(iVar10 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x208)" ( (binary_expression "iVar10 + 0x208" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))" ( (parenthesized_expression "(*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)))" ( (binary_expression "*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))" (binary_expression "*(int *)(iVar10 + 0x20c) == 0" (pointer_expression "*(int *)(iVar10 + 0x20c)" * (cast_expression "(int *)(iVar10 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20c)" ( (binary_expression "iVar10 + 0x20c" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))" ( (comma_expression "iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)" (assignment_expression "iVar14 = *(int *)(param_1 + 0x200)" identifier = (pointer_expression "*(int *)(param_1 + 0x200)" * (cast_expression "(int *)(param_1 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) ))))) , (binary_expression "iVar14 == *(int *)(iVar10 + 0x200)" identifier == (pointer_expression "*(int *)(iVar10 + 0x200)" * (cast_expression "(int *)(iVar10 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x200)" ( (binary_expression "iVar10 + 0x200" identifier + number_literal) )))))) ))) )) ))) )) (compound_statement "{\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x204);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x204)" identifier = (pointer_expression "*(int *)(param_1 + 0x204)" * (cast_expression "(int *)(param_1 + 0x204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x204)" ( (binary_expression "param_1 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) (while_statement "while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }" while (parenthesized_expression "(*(int *)(iVar11 + 0x204) == iVar2)" ( (binary_expression "*(int *)(iVar11 + 0x204) == iVar2" (pointer_expression "*(int *)(iVar11 + 0x204)" * (cast_expression "(int *)(iVar11 + 0x204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x204)" ( (binary_expression "iVar11 + 0x204" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }" { (expression_statement "iVar11 = GetNextImageInList(iVar11);" (assignment_expression "iVar11 = GetNextImageInList(iVar11)" identifier = (call_expression "GetNextImageInList(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) goto LAB_000fe844;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000fe844;" goto statement_identifier ;)) (if_statement "if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;" if (parenthesized_expression "((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))" ( (binary_expression "(*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15)" (parenthesized_expression "(*(int *)(iVar11 + 0x18) != iVar20)" ( (binary_expression "*(int *)(iVar11 + 0x18) != iVar20" (pointer_expression "*(int *)(iVar11 + 0x18)" * (cast_expression "(int *)(iVar11 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) != identifier) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x1c) != iVar15)" ( (binary_expression "*(int *)(iVar11 + 0x1c) != iVar15" (pointer_expression "*(int *)(iVar11 + 0x1c)" * (cast_expression "(int *)(iVar11 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) != identifier) ))) )) (goto_statement "goto LAB_000fe818;" goto statement_identifier ;)) (if_statement "if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;" if (parenthesized_expression "(((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14))" ( (binary_expression "((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)" (parenthesized_expression "((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0))" ( (binary_expression "(*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)" (parenthesized_expression "(*(int *)(iVar11 + 0x208) != 0)" ( (binary_expression "*(int *)(iVar11 + 0x208) != 0" (pointer_expression "*(int *)(iVar11 + 0x208)" * (cast_expression "(int *)(iVar11 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x208)" ( (binary_expression "iVar11 + 0x208" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x20c) != 0)" ( (binary_expression "*(int *)(iVar11 + 0x20c) != 0" (pointer_expression "*(int *)(iVar11 + 0x20c)" * (cast_expression "(int *)(iVar11 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20c)" ( (binary_expression "iVar11 + 0x20c" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x200) != iVar14)" ( (binary_expression "*(int *)(iVar11 + 0x200) != iVar14" (pointer_expression "*(int *)(iVar11 + 0x200)" * (cast_expression "(int *)(iVar11 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x200)" ( (binary_expression "iVar11 + 0x200" identifier + number_literal) )))) != identifier) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "pcVar26 = "ImagePagesAreNotCoalesced";" (assignment_expression "pcVar26 = "ImagePagesAreNotCoalesced"" identifier = (string_literal ""ImagePagesAreNotCoalesced"" " string_content ")) ;) (expression_statement "uVar25 = 0x19a;" (assignment_expression "uVar25 = 0x19a" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3e3;" (assignment_expression "uVar24 = 0x3e3" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" else (compound_statement "{\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" { (labeled_statement "LAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";" statement_identifier : (expression_statement "pcVar26 = "ImagesAreNotTheSameSize";" (assignment_expression "pcVar26 = "ImagesAreNotTheSameSize"" identifier = (string_literal ""ImagesAreNotTheSameSize"" " string_content ")) ;)) (expression_statement "uVar25 = 0x19a;" (assignment_expression "uVar25 = 0x19a" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3de;" (assignment_expression "uVar24 = 0x3de" identifier = number_literal) ;) }))) }))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);" (call_expression "ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318)" identifier (argument_list "(param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/layer.c"" " string_content ") , (string_literal ""OptimizeLayerFrames"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) (labeled_statement "LAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\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    return uVar19;\n  }" { (return_statement "return uVar19;" return identifier ;) }))) comment (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);" statement_identifier : (expression_statement "iVar10 = GetNextImageInList(iVar10);" (assignment_expression "iVar10 = GetNextImageInList(iVar10)" identifier = (call_expression "GetNextImageInList(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;)) (expression_statement "AppendImageToList(&local_44,iVar15);" (call_expression "AppendImageToList(&local_44,iVar15)" identifier (argument_list "(&local_44,iVar15)" ( (pointer_expression "&local_44" & identifier) , identifier ))) ;) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" identifier = (binary_expression "local_d8 + 1" identifier + number_literal)) ;) (goto_statement "goto joined_r0x000ff4a8;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "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\nImage * OptimizePlusImageLayers(Image *image,ExceptionInfo *exception)\n\n{\n  uint *puVar1;\n  size_t sVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  ssize_t x;\n  ssize_t sVar7;\n  DisposeType *pDVar8;\n  Image *pIVar9;\n  uint *memory;\n  undefined4 *memory_00;\n  MagickBooleanType MVar10;\n  Image *image_00;\n  Quantum *pQVar11;\n  ExceptionInfo *exception_00;\n  uint uVar12;\n  DisposeType *pDVar13;\n  size_t sVar14;\n  uint uVar15;\n  size_t sVar16;\n  Image *pIVar17;\n  Image *pIVar18;\n  int iVar19;\n  uint *puVar20;\n  uint columns;\n  int in_GS_OFFSET;\n  bool bVar21;\n  size_t sVar22;\n  ExceptionType severity;\n  char *tag;\n  ExceptionInfo *in_stack_ffffff1c;\n  ExceptionInfo *in_stack_ffffff20;\n  Image *local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  Image *local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  MagickBooleanType local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  RectangleInfo local_5c;\n  Image *optimized_image;\n  RectangleInfo try_bounds;\n  RectangleInfo local_30;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)\n    ;\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  pIVar9 = GetFirstImageInList(image);\n  if (pIVar9 == (Image *)0x0) {\nLAB_000fe844:\n    sVar22 = GetImageListLength(pIVar9);\n    memory = (uint *)AcquireQuantumMemory(sVar22,0x20);\n    if (memory == (uint *)0x0) {\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }\n    else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }\n  }\n  else {\n    sVar22 = pIVar9->columns;\n    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }\n  }\n  pIVar17 = (Image *)0x0;\n  ThrowMagickException\n            (exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",\n             image->filename);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pIVar17;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\ncode_r0x000ff534:\n  pIVar9 = GetNextImageInList(pIVar9);\n  AppendImageToList(&optimized_image,pIVar18);\n  local_d8 = (Image *)((int)local_d8 + 1);\n  goto joined_r0x000ff4a8;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "Image * OptimizePlusImageLayers(Image *image,ExceptionInfo *exception)\n\n{\n  uint *puVar1;\n  size_t sVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  ssize_t x;\n  ssize_t sVar7;\n  DisposeType *pDVar8;\n  Image *pIVar9;\n  uint *memory;\n  undefined4 *memory_00;\n  MagickBooleanType MVar10;\n  Image *image_00;\n  Quantum *pQVar11;\n  ExceptionInfo *exception_00;\n  uint uVar12;\n  DisposeType *pDVar13;\n  size_t sVar14;\n  uint uVar15;\n  size_t sVar16;\n  Image *pIVar17;\n  Image *pIVar18;\n  int iVar19;\n  uint *puVar20;\n  uint columns;\n  int in_GS_OFFSET;\n  bool bVar21;\n  size_t sVar22;\n  ExceptionType severity;\n  char *tag;\n  ExceptionInfo *in_stack_ffffff1c;\n  ExceptionInfo *in_stack_ffffff20;\n  Image *local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  Image *local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  MagickBooleanType local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  RectangleInfo local_5c;\n  Image *optimized_image;\n  RectangleInfo try_bounds;\n  RectangleInfo local_30;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)\n    ;\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  pIVar9 = GetFirstImageInList(image);\n  if (pIVar9 == (Image *)0x0) {\nLAB_000fe844:\n    sVar22 = GetImageListLength(pIVar9);\n    memory = (uint *)AcquireQuantumMemory(sVar22,0x20);\n    if (memory == (uint *)0x0) {\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }\n    else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }\n  }\n  else {\n    sVar22 = pIVar9->columns;\n    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }\n  }\n  pIVar17 = (Image *)0x0;\n  ThrowMagickException\n            (exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",\n             image->filename);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pIVar17;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\ncode_r0x000ff534:\n  pIVar9 = GetNextImageInList(pIVar9);\n  AppendImageToList(&optimized_image,pIVar18);\n  local_d8 = (Image *)((int)local_d8 + 1);\n  goto joined_r0x000ff4a8;\n}" type_identifier (pointer_declarator "* OptimizePlusImageLayers(Image *image,ExceptionInfo *exception)" * (function_declarator "OptimizePlusImageLayers(Image *image,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) )))) (compound_statement "{\n  uint *puVar1;\n  size_t sVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  ssize_t x;\n  ssize_t sVar7;\n  DisposeType *pDVar8;\n  Image *pIVar9;\n  uint *memory;\n  undefined4 *memory_00;\n  MagickBooleanType MVar10;\n  Image *image_00;\n  Quantum *pQVar11;\n  ExceptionInfo *exception_00;\n  uint uVar12;\n  DisposeType *pDVar13;\n  size_t sVar14;\n  uint uVar15;\n  size_t sVar16;\n  Image *pIVar17;\n  Image *pIVar18;\n  int iVar19;\n  uint *puVar20;\n  uint columns;\n  int in_GS_OFFSET;\n  bool bVar21;\n  size_t sVar22;\n  ExceptionType severity;\n  char *tag;\n  ExceptionInfo *in_stack_ffffff1c;\n  ExceptionInfo *in_stack_ffffff20;\n  Image *local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  Image *local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  MagickBooleanType local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  RectangleInfo local_5c;\n  Image *optimized_image;\n  RectangleInfo try_bounds;\n  RectangleInfo local_30;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)\n    ;\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  pIVar9 = GetFirstImageInList(image);\n  if (pIVar9 == (Image *)0x0) {\nLAB_000fe844:\n    sVar22 = GetImageListLength(pIVar9);\n    memory = (uint *)AcquireQuantumMemory(sVar22,0x20);\n    if (memory == (uint *)0x0) {\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }\n    else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }\n  }\n  else {\n    sVar22 = pIVar9->columns;\n    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }\n  }\n  pIVar17 = (Image *)0x0;\n  ThrowMagickException\n            (exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",\n             image->filename);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pIVar17;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\ncode_r0x000ff534:\n  pIVar9 = GetNextImageInList(pIVar9);\n  AppendImageToList(&optimized_image,pIVar18);\n  local_d8 = (Image *)((int)local_d8 + 1);\n  goto joined_r0x000ff4a8;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "ssize_t x;" primitive_type identifier ;) (declaration "ssize_t sVar7;" primitive_type identifier ;) (declaration "DisposeType *pDVar8;" type_identifier (pointer_declarator "*pDVar8" * identifier) ;) (declaration "Image *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "uint *memory;" type_identifier (pointer_declarator "*memory" * identifier) ;) (declaration "undefined4 *memory_00;" type_identifier (pointer_declarator "*memory_00" * identifier) ;) (declaration "MagickBooleanType MVar10;" type_identifier identifier ;) (declaration "Image *image_00;" type_identifier (pointer_declarator "*image_00" * identifier) ;) (declaration "Quantum *pQVar11;" type_identifier (pointer_declarator "*pQVar11" * identifier) ;) (declaration "ExceptionInfo *exception_00;" type_identifier (pointer_declarator "*exception_00" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "DisposeType *pDVar13;" type_identifier (pointer_declarator "*pDVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "Image *pIVar17;" type_identifier (pointer_declarator "*pIVar17" * identifier) ;) (declaration "Image *pIVar18;" type_identifier (pointer_declarator "*pIVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint columns;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "ExceptionType severity;" type_identifier identifier ;) (declaration "char *tag;" primitive_type (pointer_declarator "*tag" * identifier) ;) (declaration "ExceptionInfo *in_stack_ffffff1c;" type_identifier (pointer_declarator "*in_stack_ffffff1c" * identifier) ;) (declaration "ExceptionInfo *in_stack_ffffff20;" type_identifier (pointer_declarator "*in_stack_ffffff20" * identifier) ;) (declaration "Image *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int *local_c8;" primitive_type (pointer_declarator "*local_c8" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "Image *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "MagickBooleanType local_90;" type_identifier identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "longlong local_74;" type_identifier identifier ;) (declaration "RectangleInfo local_5c;" type_identifier identifier ;) (declaration "Image *optimized_image;" type_identifier (pointer_declarator "*optimized_image" * identifier) ;) (declaration "RectangleInfo try_bounds;" type_identifier identifier ;) (declaration "RectangleInfo local_30;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xfe649;" (assignment_expression "uStack_14 = 0xfe649" identifier = number_literal) ;) (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 (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\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("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");" (call_expression "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" identifier (argument_list "("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" ( (string_literal ""image != (const Image *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\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("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)\n    ;\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,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)\n    ;\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)\n    ;" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)" identifier (argument_list "(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",image->filename)" ( identifier , (string_literal ""MagickCore/layer.c"" " string_content ") , (string_literal ""OptimizeLayerFrames"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\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("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\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("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" identifier (argument_list "("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (expression_statement "pIVar9 = GetFirstImageInList(image);" (assignment_expression "pIVar9 = GetFirstImageInList(image)" identifier = (call_expression "GetFirstImageInList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (pIVar9 == (Image *)0x0) {\nLAB_000fe844:\n    sVar22 = GetImageListLength(pIVar9);\n    memory = (uint *)AcquireQuantumMemory(sVar22,0x20);\n    if (memory == (uint *)0x0) {\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }\n    else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }\n  }\n  else {\n    sVar22 = pIVar9->columns;\n    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }\n  }" if (parenthesized_expression "(pIVar9 == (Image *)0x0)" ( (binary_expression "pIVar9 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fe844:\n    sVar22 = GetImageListLength(pIVar9);\n    memory = (uint *)AcquireQuantumMemory(sVar22,0x20);\n    if (memory == (uint *)0x0) {\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }\n    else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }\n  }" { (labeled_statement "LAB_000fe844:\n    sVar22 = GetImageListLength(pIVar9);" statement_identifier : (expression_statement "sVar22 = GetImageListLength(pIVar9);" (assignment_expression "sVar22 = GetImageListLength(pIVar9)" identifier = (call_expression "GetImageListLength(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier )))) ;)) (expression_statement "memory = (uint *)AcquireQuantumMemory(sVar22,0x20);" (assignment_expression "memory = (uint *)AcquireQuantumMemory(sVar22,0x20)" identifier = (cast_expression "(uint *)AcquireQuantumMemory(sVar22,0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar22,0x20)" identifier (argument_list "(sVar22,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (memory == (uint *)0x0) {\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }\n    else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }" if (parenthesized_expression "(memory == (uint *)0x0)" ( (binary_expression "memory == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3ed;\n    }" { (expression_statement "tag = "MemoryAllocationFailed";" (assignment_expression "tag = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "severity = ErrorException;" (assignment_expression "severity = ErrorException" identifier = identifier) ;) (expression_statement "sVar22 = 0x3ed;" (assignment_expression "sVar22 = 0x3ed" identifier = number_literal) ;) }) (else_clause "else {\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }" else (compound_statement "{\n      sVar22 = GetImageListLength(image);\n      memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);\n      if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(memory);\n      tag = "MemoryAllocationFailed";\n      severity = ErrorException;\n      sVar22 = 0x3f4;\n    }" { (expression_statement "sVar22 = GetImageListLength(image);" (assignment_expression "sVar22 = GetImageListLength(image)" identifier = (call_expression "GetImageListLength(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8);" (assignment_expression "memory_00 = (undefined4 *)AcquireQuantumMemory(sVar22,8)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(sVar22,8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar22,8)" identifier (argument_list "(sVar22,8)" ( identifier , number_literal ))))) ;) (if_statement "if (memory_00 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }" if (parenthesized_expression "(memory_00 != (undefined4 *)0x0)" ( (binary_expression "memory_00 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);\n        if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        pIVar17 = (Image *)0x0;\n        RelinquishMagickMemory(memory);\n        RelinquishMagickMemory(memory_00);\n        goto LAB_000fe7b4;\n      }" { (expression_statement "local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception);" (assignment_expression "local_a8 = CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception)" identifier = (call_expression "CloneImage(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception)" identifier (argument_list "(pIVar9,pIVar9->columns,pIVar9->rows,MagickTrue,exception)" ( identifier , (field_expression "pIVar9->columns" identifier -> field_identifier) , (field_expression "pIVar9->rows" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (local_a8 != (Image *)0x0) {\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }" if (parenthesized_expression "(local_a8 != (Image *)0x0)" ( (binary_expression "local_a8 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (local_a8->page).width = (pIVar9->page).width;\n          sVar22 = (pIVar9->page).height;\n          (local_a8->background_color).alpha = 0.0;\n          (local_a8->page).x = 0;\n          (local_a8->page).y = 0;\n          (local_a8->page).height = sVar22;\n          local_a8->dispose = NoneDispose;\n          (local_a8->background_color).alpha_trait = BlendPixelTrait;\n          pIVar17 = (Image *)exception;\n          SetImageBackgroundColor(local_a8,exception);\n          *memory_00 = 1;\n          CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);\n          *memory = local_5c.width;\n          memory[1] = local_5c.height;\n          memory[2] = local_5c.x;\n          memory[3] = local_5c.y;\n          local_d8 = GetNextImageInList(pIVar9);\n          if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }\n          DestroyImage(local_a8);\n          exception_00 = AcquireExceptionInfo();\n          pIVar9 = GetFirstImageInList(image);\n          optimized_image = NewImageList();\n          local_d8 = (Image *)0x0;\njoined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }\n          DestroyExceptionInfo(exception_00);\n          RelinquishMagickMemory(memory);\n          RelinquishMagickMemory(memory_00);\n          pIVar17 = GetFirstImageInList(optimized_image);\n          goto LAB_000fe7b4;\n        }" { (expression_statement "(local_a8->page).width = (pIVar9->page).width;" (assignment_expression "(local_a8->page).width = (pIVar9->page).width" (field_expression "(local_a8->page).width" (parenthesized_expression "(local_a8->page)" ( (field_expression "local_a8->page" identifier -> field_identifier) )) . field_identifier) = (field_expression "(pIVar9->page).width" (parenthesized_expression "(pIVar9->page)" ( (field_expression "pIVar9->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar22 = (pIVar9->page).height;" (assignment_expression "sVar22 = (pIVar9->page).height" identifier = (field_expression "(pIVar9->page).height" (parenthesized_expression "(pIVar9->page)" ( (field_expression "pIVar9->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(local_a8->background_color).alpha = 0.0;" (assignment_expression "(local_a8->background_color).alpha = 0.0" (field_expression "(local_a8->background_color).alpha" (parenthesized_expression "(local_a8->background_color)" ( (field_expression "local_a8->background_color" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(local_a8->page).x = 0;" (assignment_expression "(local_a8->page).x = 0" (field_expression "(local_a8->page).x" (parenthesized_expression "(local_a8->page)" ( (field_expression "local_a8->page" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(local_a8->page).y = 0;" (assignment_expression "(local_a8->page).y = 0" (field_expression "(local_a8->page).y" (parenthesized_expression "(local_a8->page)" ( (field_expression "local_a8->page" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(local_a8->page).height = sVar22;" (assignment_expression "(local_a8->page).height = sVar22" (field_expression "(local_a8->page).height" (parenthesized_expression "(local_a8->page)" ( (field_expression "local_a8->page" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "local_a8->dispose = NoneDispose;" (assignment_expression "local_a8->dispose = NoneDispose" (field_expression "local_a8->dispose" identifier -> field_identifier) = identifier) ;) (expression_statement "(local_a8->background_color).alpha_trait = BlendPixelTrait;" (assignment_expression "(local_a8->background_color).alpha_trait = BlendPixelTrait" (field_expression "(local_a8->background_color).alpha_trait" (parenthesized_expression "(local_a8->background_color)" ( (field_expression "local_a8->background_color" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pIVar17 = (Image *)exception;" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "SetImageBackgroundColor(local_a8,exception);" (call_expression "SetImageBackgroundColor(local_a8,exception)" identifier (argument_list "(local_a8,exception)" ( identifier , identifier ))) ;) (expression_statement "*memory_00 = 1;" (assignment_expression "*memory_00 = 1" (pointer_expression "*memory_00" * identifier) = number_literal) ;) (expression_statement "CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17);" (call_expression "CompareImagesBounds(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17)" identifier (argument_list "(&local_5c,local_a8,pIVar9,(LayerMethod)exception,\n                              (ExceptionInfo *)pIVar17)" ( (pointer_expression "&local_5c" & identifier) , identifier , identifier , (cast_expression "(LayerMethod)exception" ( (type_descriptor "LayerMethod" type_identifier) ) identifier) , (cast_expression "(ExceptionInfo *)pIVar17" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "*memory = local_5c.width;" (assignment_expression "*memory = local_5c.width" (pointer_expression "*memory" * identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "memory[1] = local_5c.height;" (assignment_expression "memory[1] = local_5c.height" (subscript_expression "memory[1]" identifier [ number_literal ]) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "memory[2] = local_5c.x;" (assignment_expression "memory[2] = local_5c.x" (subscript_expression "memory[2]" identifier [ number_literal ]) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "memory[3] = local_5c.y;" (assignment_expression "memory[3] = local_5c.y" (subscript_expression "memory[3]" identifier [ number_literal ]) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (expression_statement "local_d8 = GetNextImageInList(pIVar9);" (assignment_expression "local_d8 = GetNextImageInList(pIVar9)" identifier = (call_expression "GetNextImageInList(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier )))) ;) (if_statement "if (local_d8 != (Image *)0x0) {\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }" if (parenthesized_expression "(local_d8 != (Image *)0x0)" ( (binary_expression "local_d8 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pIVar18 = (Image *)0x0;\n            local_cc = 1;\n            pIVar9 = (Image *)0x0;\n            do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);\n          }" { (expression_statement "pIVar18 = (Image *)0x0;" (assignment_expression "pIVar18 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_cc = 1;" (assignment_expression "local_cc = 1" identifier = number_literal) ;) (expression_statement "pIVar9 = (Image *)0x0;" (assignment_expression "pIVar9 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != (Image *)0x0);" do (compound_statement "{\n              puVar20 = memory + local_cc * 4;\n              CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);\n              *puVar20 = local_5c.width;\n              puVar20[1] = local_5c.height;\n              puVar20[2] = local_5c.x;\n              puVar20[3] = local_5c.y;\n              if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            }" { (expression_statement "puVar20 = memory + local_cc * 4;" (assignment_expression "puVar20 = memory + local_cc * 4" identifier = (binary_expression "memory + local_cc * 4" identifier + (binary_expression "local_cc * 4" identifier * number_literal))) ;) (expression_statement "CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17);" (call_expression "CompareImagesBounds(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17)" identifier (argument_list "(&local_5c,local_d8->previous,local_d8,(LayerMethod)exception,\n                                  (ExceptionInfo *)pIVar17)" ( (pointer_expression "&local_5c" & identifier) , (field_expression "local_d8->previous" identifier -> field_identifier) , identifier , (cast_expression "(LayerMethod)exception" ( (type_descriptor "LayerMethod" type_identifier) ) identifier) , (cast_expression "(ExceptionInfo *)pIVar17" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "*puVar20 = local_5c.width;" (assignment_expression "*puVar20 = local_5c.width" (pointer_expression "*puVar20" * identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "puVar20[1] = local_5c.height;" (assignment_expression "puVar20[1] = local_5c.height" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "puVar20[2] = local_5c.x;" (assignment_expression "puVar20[2] = local_5c.x" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "puVar20[3] = local_5c.y;" (assignment_expression "puVar20[3] = local_5c.y" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (if_statement "if (local_5c.x < 0) {\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }\n              else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }" if (parenthesized_expression "(local_5c.x < 0)" ( (binary_expression "local_5c.x < 0" (field_expression "local_5c.x" identifier . field_identifier) < number_literal) )) (compound_statement "{\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                memory_00[local_cc + 0x40000000] = 1;\n                *puVar20 = memory[local_cc * 4 + -4];\n                puVar20[1] = memory[local_cc * 4 + -3];\n                puVar20[2] = memory[local_cc * 4 + -2];\n                puVar20[3] = memory[local_cc * 4 + -1];\n              }" { (expression_statement "local_c8 = memory_00 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = memory_00 + local_cc + 0x3fffffff" identifier = (binary_expression "memory_00 + local_cc + 0x3fffffff" (binary_expression "memory_00 + local_cc" identifier + identifier) + number_literal)) ;) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (labeled_statement "LAB_000fe9b6:\n                if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" statement_identifier : (if_statement "if (local_cc == 1) {\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" if (parenthesized_expression "(local_cc == 1)" ( (binary_expression "local_cc == 1" identifier == number_literal) )) (compound_statement "{\n                  image_00 = pIVar18;\n                  if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  pIVar9 = DestroyImage(pIVar9);\n                  image_00 = pIVar18;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (pIVar18 == (Image *)0x0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);\n                  iVar19 = *local_c8;\nLAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(local_d8->previous);\n                  if (local_a8 != (Image *)0x0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" { (expression_statement "image_00 = pIVar18;" (assignment_expression "image_00 = pIVar18" identifier = identifier) ;) (if_statement "if (pIVar9 == (Image *)0x0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" if (parenthesized_expression "(pIVar9 == (Image *)0x0)" ( (binary_expression "pIVar9 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar19 = *local_c8;\n                    if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" { (labeled_statement "LAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);" statement_identifier : (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" identifier = (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier )))) ;)) (expression_statement "iVar19 = *local_c8;" (assignment_expression "iVar19 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (if_statement "if (iVar19 != 2) {\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" if (parenthesized_expression "(iVar19 != 2)" ( (binary_expression "iVar19 != 2" identifier != number_literal) )) (compound_statement "{\n                      pIVar18 = image_00;\n                      if (image_00 != (Image *)0x0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" { (expression_statement "pIVar18 = image_00;" (assignment_expression "pIVar18 = image_00" identifier = identifier) ;) (if_statement "if (image_00 != (Image *)0x0) goto LAB_000fe9f5;" if (parenthesized_expression "(image_00 != (Image *)0x0)" ( (binary_expression "image_00 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000fe9f5;" goto statement_identifier ;)) (goto_statement "goto LAB_000fea09;" goto statement_identifier ;) })) (expression_statement "pIVar18 = (Image *)0x0;" (assignment_expression "pIVar18 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = image_00;" (assignment_expression "local_a8 = image_00" identifier = identifier) ;) (labeled_statement "LAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;" statement_identifier : (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;)) (if_statement "if (local_a8 == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" if (parenthesized_expression "(local_a8 == (Image *)0x0)" ( (binary_expression "local_a8 == (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("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" { comment (expression_statement "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");" (call_expression "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" identifier (argument_list "("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" ( (string_literal ""prev_image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;) })) (labeled_statement "LAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;" statement_identifier : (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;)) (expression_statement "pIVar9 = DestroyImage(pIVar9);" (assignment_expression "pIVar9 = DestroyImage(pIVar9)" identifier = (call_expression "DestroyImage(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "image_00 = pIVar18;" (assignment_expression "image_00 = pIVar18" identifier = identifier) ;) (if_statement "if (*local_c8 != 3) goto LAB_000fef38;" if (parenthesized_expression "(*local_c8 != 3)" ( (binary_expression "*local_c8 != 3" (pointer_expression "*local_c8" * identifier) != number_literal) )) (goto_statement "goto LAB_000fef38;" goto statement_identifier ;)) (if_statement "if (pIVar18 == (Image *)0x0) goto LAB_000fee89;" if (parenthesized_expression "(pIVar18 == (Image *)0x0)" ( (binary_expression "pIVar18 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;)) (labeled_statement "LAB_000fe9f5:\n                  pIVar18 = DestroyImage(image_00);" statement_identifier : (expression_statement "pIVar18 = DestroyImage(image_00);" (assignment_expression "pIVar18 = DestroyImage(image_00)" identifier = (call_expression "DestroyImage(image_00)" identifier (argument_list "(image_00)" ( identifier )))) ;)) (expression_statement "iVar19 = *local_c8;" (assignment_expression "iVar19 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (labeled_statement "LAB_000fea09:\n                  if (iVar19 != 1) goto LAB_000fef60;" statement_identifier : (if_statement "if (iVar19 != 1) goto LAB_000fef60;" if (parenthesized_expression "(iVar19 != 1)" ( (binary_expression "iVar19 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000fef60;" goto statement_identifier ;))) (expression_statement "local_a8 = ReferenceImage(local_d8->previous);" (assignment_expression "local_a8 = ReferenceImage(local_d8->previous)" identifier = (call_expression "ReferenceImage(local_d8->previous)" identifier (argument_list "(local_d8->previous)" ( (field_expression "local_d8->previous" identifier -> field_identifier) )))) ;) (if_statement "if (local_a8 != (Image *)0x0) goto LAB_000fea38;" if (parenthesized_expression "(local_a8 != (Image *)0x0)" ( (binary_expression "local_a8 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000fea38;" goto statement_identifier ;)) (goto_statement "goto LAB_000ff84d;" goto statement_identifier ;) }))) (expression_statement "*local_c8 = 8;" (assignment_expression "*local_c8 = 8" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "memory_00[local_cc + 0x40000000] = 1;" (assignment_expression "memory_00[local_cc + 0x40000000] = 1" (subscript_expression "memory_00[local_cc + 0x40000000]" identifier [ (binary_expression "local_cc + 0x40000000" identifier + number_literal) ]) = number_literal) ;) (expression_statement "*puVar20 = memory[local_cc * 4 + -4];" (assignment_expression "*puVar20 = memory[local_cc * 4 + -4]" (pointer_expression "*puVar20" * identifier) = (subscript_expression "memory[local_cc * 4 + -4]" identifier [ (binary_expression "local_cc * 4 + -4" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar20[1] = memory[local_cc * 4 + -3];" (assignment_expression "puVar20[1] = memory[local_cc * 4 + -3]" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = (subscript_expression "memory[local_cc * 4 + -3]" identifier [ (binary_expression "local_cc * 4 + -3" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar20[2] = memory[local_cc * 4 + -2];" (assignment_expression "puVar20[2] = memory[local_cc * 4 + -2]" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = (subscript_expression "memory[local_cc * 4 + -2]" identifier [ (binary_expression "local_cc * 4 + -2" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar20[3] = memory[local_cc * 4 + -1];" (assignment_expression "puVar20[3] = memory[local_cc * 4 + -1]" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = (subscript_expression "memory[local_cc * 4 + -1]" identifier [ (binary_expression "local_cc * 4 + -1" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) }) (else_clause "else {\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }" else (compound_statement "{\n                MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                uVar12 = puVar20[2];\n                local_c8 = memory_00 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar12 < 0) goto LAB_000fe9b6;\n                CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }\n                local_90 = MVar10;\n                pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }\n                (pIVar9->background_color).alpha_trait = BlendPixelTrait;\n                pIVar17 = (Image *)exception;\n                CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);\n                sVar7 = local_30.y;\n                x = local_30.x;\n                sVar16 = local_30.height;\n                sVar22 = local_30.width;\n                local_94 = local_30.width;\n                local_98 = local_30.height;\n                if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.height = local_5c.height;\n                try_bounds.width = local_5c.width;\n                try_bounds.x = local_5c.x;\n                try_bounds.y = local_5c.y;\n                if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }\n                image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);\n                if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }\n                (image_00->background_color).alpha_trait = BlendPixelTrait;\n                puVar1 = memory + local_cc * 4 + -4;\n                uVar12 = puVar1[1];\n                columns = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }\n                CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);\n                try_bounds.width = local_5c.width;\n                try_bounds.y = local_5c.y;\n                try_bounds.height = local_5c.height;\n                try_bounds.x = local_5c.x;\n                local_8c = uVar12;\n                if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }\n                iVar19 = *local_c8;\n                pIVar18 = image_00;\n                if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar19 != 9) goto LAB_000fe9cd;\n                pIVar18 = DestroyImage(image_00);\n                DestroyImage(local_a8);\n                memory[local_cc * 4 + 4] = *puVar20;\n                memory[local_cc * 4 + 5] = puVar20[1];\n                memory[local_cc * 4 + 6] = puVar20[2];\n                memory[local_cc * 4 + 7] = puVar20[3];\n                *puVar20 = local_94;\n                puVar20[1] = local_98;\n                puVar20[2] = x;\n                puVar20[3] = sVar7;\n                *local_c8 = 9;\n                memory_00[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = pIVar9;\n                pIVar9 = (Image *)0x0;\nLAB_000fee89:\n                local_c8 = memory_00 + local_a0;\nLAB_000fea38:\n                memory_00[local_cc] = *local_c8;\n              }" { (expression_statement "MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);" (assignment_expression "MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" identifier = (call_expression "IsBoundsCleared((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" identifier (argument_list "((Image *)exception,pIVar17,\n                                         (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" ( (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(RectangleInfo *)in_stack_ffffff1c" ( (type_descriptor "RectangleInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "uVar12 = puVar20[2];" (assignment_expression "uVar12 = puVar20[2]" identifier = (subscript_expression "puVar20[2]" identifier [ number_literal ])) ;) (expression_statement "local_c8 = memory_00 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = memory_00 + local_cc + 0x3fffffff" identifier = (binary_expression "memory_00 + local_cc + 0x3fffffff" (binary_expression "memory_00 + local_cc" identifier + identifier) + number_literal)) ;) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (if_statement "if ((int)uVar12 < 0) goto LAB_000fe9b6;" if (parenthesized_expression "((int)uVar12 < 0)" ( (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000fe9b6;" goto statement_identifier ;)) (expression_statement "CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);" (call_expression "CompareImagesBounds(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17)" identifier (argument_list "(&local_5c,local_a8,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17)" ( (pointer_expression "&local_5c" & identifier) , identifier , identifier , (cast_expression "(LayerMethod)exception" ( (type_descriptor "LayerMethod" type_identifier) ) identifier) , (cast_expression "(ExceptionInfo *)pIVar17" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "try_bounds.width = local_5c.width;" (assignment_expression "try_bounds.width = local_5c.width" (field_expression "try_bounds.width" identifier . field_identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "try_bounds.y = local_5c.y;" (assignment_expression "try_bounds.y = local_5c.y" (field_expression "try_bounds.y" identifier . field_identifier) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (expression_statement "try_bounds.height = local_5c.height;" (assignment_expression "try_bounds.height = local_5c.height" (field_expression "try_bounds.height" identifier . field_identifier) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "try_bounds.x = local_5c.x;" (assignment_expression "try_bounds.x = local_5c.x" (field_expression "try_bounds.x" identifier . field_identifier) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (if_statement "if (local_5c.x < 0) {\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }\n                else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }" if (parenthesized_expression "(local_5c.x < 0)" ( (binary_expression "local_5c.x < 0" (field_expression "local_5c.x" identifier . field_identifier) < number_literal) )) (compound_statement "{\n                  bVar21 = true;\n                  local_90 = MagickFalse;\n                }" { (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) (expression_statement "local_90 = MagickFalse;" (assignment_expression "local_90 = MagickFalse" identifier = identifier) ;) }) (else_clause "else {\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }" else (compound_statement "{\n                  local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);\n                  bVar21 = local_90 == MagickFalse;\n                }" { (expression_statement "local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20);" (assignment_expression "local_90 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" identifier = (call_expression "IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" identifier (argument_list "((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" ( (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(RectangleInfo *)in_stack_ffffff1c" ( (type_descriptor "RectangleInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "bVar21 = local_90 == MagickFalse;" (assignment_expression "bVar21 = local_90 == MagickFalse" identifier = (binary_expression "local_90 == MagickFalse" identifier == identifier)) ;) }))) (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;) (if_statement "if (((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }" if (parenthesized_expression "(((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1]))" ( (binary_expression "((MVar10 != MagickFalse) && (bVar21)) ||\n                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])" (parenthesized_expression "((MVar10 != MagickFalse) && (bVar21))" ( (binary_expression "(MVar10 != MagickFalse) && (bVar21)" (parenthesized_expression "(MVar10 != MagickFalse)" ( (binary_expression "MVar10 != MagickFalse" identifier != identifier) )) && (parenthesized_expression "(bVar21)" ( identifier ))) )) || (parenthesized_expression "(try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])" ( (binary_expression "try_bounds.width * try_bounds.height < *puVar20 * puVar20[1]" (binary_expression "try_bounds.width * try_bounds.height" (field_expression "try_bounds.width" identifier . field_identifier) * (field_expression "try_bounds.height" identifier . field_identifier)) < (binary_expression "*puVar20 * puVar20[1]" (pointer_expression "*puVar20" * identifier) * (subscript_expression "puVar20[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                  *puVar20 = try_bounds.width;\n                  puVar20[1] = try_bounds.height;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  *local_c8 = 3;\n                  MVar10 = local_90;\n                }" { (expression_statement "*puVar20 = try_bounds.width;" (assignment_expression "*puVar20 = try_bounds.width" (pointer_expression "*puVar20" * identifier) = (field_expression "try_bounds.width" identifier . field_identifier)) ;) (expression_statement "puVar20[1] = try_bounds.height;" (assignment_expression "puVar20[1] = try_bounds.height" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = (field_expression "try_bounds.height" identifier . field_identifier)) ;) (expression_statement "puVar20[2] = try_bounds.x;" (assignment_expression "puVar20[2] = try_bounds.x" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = (field_expression "try_bounds.x" identifier . field_identifier)) ;) (expression_statement "puVar20[3] = try_bounds.y;" (assignment_expression "puVar20[3] = try_bounds.y" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = (field_expression "try_bounds.y" identifier . field_identifier)) ;) (expression_statement "*local_c8 = 3;" (assignment_expression "*local_c8 = 3" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "MVar10 = local_90;" (assignment_expression "MVar10 = local_90" identifier = identifier) ;) })) (expression_statement "local_90 = MVar10;" (assignment_expression "local_90 = MVar10" identifier = identifier) ;) (expression_statement "pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);" (assignment_expression "pIVar9 = CloneImage(local_d8->previous,0,0,MagickTrue,exception)" identifier = (call_expression "CloneImage(local_d8->previous,0,0,MagickTrue,exception)" identifier (argument_list "(local_d8->previous,0,0,MagickTrue,exception)" ( (field_expression "local_d8->previous" identifier -> field_identifier) , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (pIVar9 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }" if (parenthesized_expression "(pIVar9 == (Image *)0x0)" ( (binary_expression "pIVar9 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  goto LAB_000fe7b4;\n                }" { (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "pIVar17 = (Image *)0x0;" (assignment_expression "pIVar17 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "(pIVar9->background_color).alpha_trait = BlendPixelTrait;" (assignment_expression "(pIVar9->background_color).alpha_trait = BlendPixelTrait" (field_expression "(pIVar9->background_color).alpha_trait" (parenthesized_expression "(pIVar9->background_color)" ( (field_expression "pIVar9->background_color" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pIVar17 = (Image *)exception;" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception);" (call_expression "CompareImagesBounds(&local_30,pIVar9,local_d8,CompareClearLayer,exception)" identifier (argument_list "(&local_30,pIVar9,local_d8,CompareClearLayer,exception)" ( (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = local_30.y;" (assignment_expression "sVar7 = local_30.y" identifier = (field_expression "local_30.y" identifier . field_identifier)) ;) (expression_statement "x = local_30.x;" (assignment_expression "x = local_30.x" identifier = (field_expression "local_30.x" identifier . field_identifier)) ;) (expression_statement "sVar16 = local_30.height;" (assignment_expression "sVar16 = local_30.height" identifier = (field_expression "local_30.height" identifier . field_identifier)) ;) (expression_statement "sVar22 = local_30.width;" (assignment_expression "sVar22 = local_30.width" identifier = (field_expression "local_30.width" identifier . field_identifier)) ;) (expression_statement "local_94 = local_30.width;" (assignment_expression "local_94 = local_30.width" identifier = (field_expression "local_30.width" identifier . field_identifier)) ;) (expression_statement "local_98 = local_30.height;" (assignment_expression "local_98 = local_30.height" identifier = (field_expression "local_30.height" identifier . field_identifier)) ;) (if_statement "if (-1 < local_30.x) {\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }" if (parenthesized_expression "(-1 < local_30.x)" ( (binary_expression "-1 < local_30.x" number_literal < (field_expression "local_30.x" identifier . field_identifier)) )) (compound_statement "{\n                  if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }\n                }" { (if_statement "if (pIVar9->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }" if (parenthesized_expression "(pIVar9->alpha_trait == UndefinedPixelTrait)" ( (binary_expression "pIVar9->alpha_trait == UndefinedPixelTrait" (field_expression "pIVar9->alpha_trait" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);\n                  }" { (expression_statement "pIVar17 = (Image *)0xb;" (assignment_expression "pIVar17 = (Image *)0xb" identifier = (cast_expression "(Image *)0xb" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_stack_ffffff1c = exception;" (assignment_expression "in_stack_ffffff1c = exception" identifier = identifier) ;) (expression_statement "SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception);" (call_expression "SetImageAlphaChannel(pIVar9,OpaqueAlphaChannel,exception)" identifier (argument_list "(pIVar9,OpaqueAlphaChannel,exception)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (0 < (int)sVar16) {\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }" if (parenthesized_expression "(0 < (int)sVar16)" ( (binary_expression "0 < (int)sVar16" number_literal < (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    local_d4 = sVar7;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }\n                  }" { (expression_statement "local_d4 = sVar7;" (assignment_expression "local_d4 = sVar7" identifier = identifier) ;) (while_statement "while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }" while (parenthesized_expression "(pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0)" ( (comma_expression "pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception),\n                          pQVar11 != (Quantum *)0x0" (assignment_expression "pQVar11 = GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception)" identifier = (call_expression "GetAuthenticPixels(pIVar9,x,local_d4,sVar22,1,exception)" identifier (argument_list "(pIVar9,x,local_d4,sVar22,1,exception)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "pQVar11 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) )) (compound_statement "{\n                      if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(pIVar9,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;\n                    }" { (if_statement "if (0 < (int)sVar22) {\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }" if (parenthesized_expression "(0 < (int)sVar22)" ( (binary_expression "0 < (int)sVar22" number_literal < (cast_expression "(int)sVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        sVar2 = pIVar9->number_channels;\n                        if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }\n                      }" { (expression_statement "sVar2 = pIVar9->number_channels;" (assignment_expression "sVar2 = pIVar9->number_channels" identifier = (field_expression "pIVar9->number_channels" identifier -> field_identifier)) ;) (if_statement "if (pIVar9->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }" if (parenthesized_expression "(pIVar9->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "pIVar9->channel_map[4].traits != UndefinedPixelTrait" (field_expression "pIVar9->channel_map[4].traits" (subscript_expression "pIVar9->channel_map[4]" (field_expression "pIVar9->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                          iVar19 = pIVar9->channel_map[4].offset;\n                          sVar14 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);\n                        }" { (expression_statement "iVar19 = pIVar9->channel_map[4].offset;" (assignment_expression "iVar19 = pIVar9->channel_map[4].offset" identifier = (field_expression "pIVar9->channel_map[4].offset" (subscript_expression "pIVar9->channel_map[4]" (field_expression "pIVar9->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "sVar14 = 0;" (assignment_expression "sVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          } while (sVar14 != sVar22);" do (compound_statement "{\n                            pQVar11[iVar19] = 0.0;\n                            sVar14 = sVar14 + 1;\n                            pQVar11 = pQVar11 + sVar2;\n                          }" { (expression_statement "pQVar11[iVar19] = 0.0;" (assignment_expression "pQVar11[iVar19] = 0.0" (subscript_expression "pQVar11[iVar19]" identifier [ identifier ]) = number_literal) ;) (expression_statement "sVar14 = sVar14 + 1;" (assignment_expression "sVar14 = sVar14 + 1" identifier = (binary_expression "sVar14 + 1" identifier + number_literal)) ;) (expression_statement "pQVar11 = pQVar11 + sVar2;" (assignment_expression "pQVar11 = pQVar11 + sVar2" identifier = (binary_expression "pQVar11 + sVar2" identifier + identifier)) ;) }) while (parenthesized_expression "(sVar14 != sVar22)" ( (binary_expression "sVar14 != sVar22" identifier != identifier) )) ;) })) })) (expression_statement "pIVar17 = (Image *)exception;" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "MVar10 = SyncAuthenticPixels(pIVar9,exception);" (assignment_expression "MVar10 = SyncAuthenticPixels(pIVar9,exception)" identifier = (call_expression "SyncAuthenticPixels(pIVar9,exception)" identifier (argument_list "(pIVar9,exception)" ( identifier , identifier )))) ;) (if_statement "if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)) break;" if (parenthesized_expression "((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4))" ( (binary_expression "(MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)" (parenthesized_expression "(MVar10 == MagickFalse)" ( (binary_expression "MVar10 == MagickFalse" identifier == identifier) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4)" ( (comma_expression "local_d4 = local_d4 + 1, sVar16 + sVar7 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "sVar16 + sVar7 == local_d4" (binary_expression "sVar16 + sVar7" identifier + identifier) == identifier)) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);" (call_expression "CompareImagesBounds(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17)" identifier (argument_list "(&local_5c,pIVar9,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17)" ( (pointer_expression "&local_5c" & identifier) , identifier , identifier , (cast_expression "(LayerMethod)exception" ( (type_descriptor "LayerMethod" type_identifier) ) identifier) , (cast_expression "(ExceptionInfo *)pIVar17" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "try_bounds.height = local_5c.height;" (assignment_expression "try_bounds.height = local_5c.height" (field_expression "try_bounds.height" identifier . field_identifier) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "try_bounds.width = local_5c.width;" (assignment_expression "try_bounds.width = local_5c.width" (field_expression "try_bounds.width" identifier . field_identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "try_bounds.x = local_5c.x;" (assignment_expression "try_bounds.x = local_5c.x" (field_expression "try_bounds.x" identifier . field_identifier) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "try_bounds.y = local_5c.y;" (assignment_expression "try_bounds.y = local_5c.y" (field_expression "try_bounds.y" identifier . field_identifier) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (if_statement "if ((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }" if (parenthesized_expression "((local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16))" ( (binary_expression "(local_90 == MagickFalse) &&\n                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)" (parenthesized_expression "(local_90 == MagickFalse)" ( (binary_expression "local_90 == MagickFalse" identifier == identifier) )) && (parenthesized_expression "(*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16)" ( (binary_expression "*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + sVar22 * sVar16" (binary_expression "*puVar20 * puVar20[1]" (pointer_expression "*puVar20" * identifier) * (subscript_expression "puVar20[1]" identifier [ number_literal ])) <= (binary_expression "local_5c.width * local_5c.height + sVar22 * sVar16" (binary_expression "local_5c.width * local_5c.height" (field_expression "local_5c.width" identifier . field_identifier) * (field_expression "local_5c.height" identifier . field_identifier)) + (binary_expression "sVar22 * sVar16" identifier * identifier))) ))) )) (compound_statement "{\n                  local_98 = 0;\n                  local_94 = 0;\n                }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }" else (compound_statement "{\n                  *puVar20 = local_5c.width;\n                  puVar20[1] = local_5c.height;\n                  puVar20[2] = local_5c.x;\n                  puVar20[3] = local_5c.y;\n                  *local_c8 = 9;\n                }" { (expression_statement "*puVar20 = local_5c.width;" (assignment_expression "*puVar20 = local_5c.width" (pointer_expression "*puVar20" * identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "puVar20[1] = local_5c.height;" (assignment_expression "puVar20[1] = local_5c.height" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "puVar20[2] = local_5c.x;" (assignment_expression "puVar20[2] = local_5c.x" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "puVar20[3] = local_5c.y;" (assignment_expression "puVar20[3] = local_5c.y" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" * identifier) = number_literal) ;) }))) (expression_statement "image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception);" (assignment_expression "image_00 = CloneImage(local_d8->previous,0,0,MagickTrue,exception)" identifier = (call_expression "CloneImage(local_d8->previous,0,0,MagickTrue,exception)" identifier (argument_list "(local_d8->previous,0,0,MagickTrue,exception)" ( (field_expression "local_d8->previous" identifier -> field_identifier) , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (image_00 == (Image *)0x0) {\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }" if (parenthesized_expression "(image_00 == (Image *)0x0)" ( (binary_expression "image_00 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  RelinquishMagickMemory(memory);\n                  RelinquishMagickMemory(memory_00);\n                  DestroyImage(local_a8);\n                  pIVar17 = (Image *)0x0;\n                  DestroyImage(pIVar9);\n                  goto LAB_000fe7b4;\n                }" { (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "pIVar17 = (Image *)0x0;" (assignment_expression "pIVar17 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DestroyImage(pIVar9);" (call_expression "DestroyImage(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "(image_00->background_color).alpha_trait = BlendPixelTrait;" (assignment_expression "(image_00->background_color).alpha_trait = BlendPixelTrait" (field_expression "(image_00->background_color).alpha_trait" (parenthesized_expression "(image_00->background_color)" ( (field_expression "image_00->background_color" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar1 = memory + local_cc * 4 + -4;" (assignment_expression "puVar1 = memory + local_cc * 4 + -4" identifier = (binary_expression "memory + local_cc * 4 + -4" (binary_expression "memory + local_cc * 4" identifier + (binary_expression "local_cc * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "uVar12 = puVar1[1];" (assignment_expression "uVar12 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "columns = *puVar1;" (assignment_expression "columns = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_b8 = puVar1[2];" (assignment_expression "local_b8 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_80 = puVar1[3];" (assignment_expression "local_80 = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)local_b8) {\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }" if (parenthesized_expression "(-1 < (int)local_b8)" ( (binary_expression "-1 < (int)local_b8" number_literal < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }\n                  if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }\n                }" { (if_statement "if (image_00->alpha_trait == UndefinedPixelTrait) {\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }" if (parenthesized_expression "(image_00->alpha_trait == UndefinedPixelTrait)" ( (binary_expression "image_00->alpha_trait == UndefinedPixelTrait" (field_expression "image_00->alpha_trait" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                    pIVar17 = (Image *)0xb;\n                    in_stack_ffffff1c = exception;\n                    SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                  }" { (expression_statement "pIVar17 = (Image *)0xb;" (assignment_expression "pIVar17 = (Image *)0xb" identifier = (cast_expression "(Image *)0xb" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_stack_ffffff1c = exception;" (assignment_expression "in_stack_ffffff1c = exception" identifier = identifier) ;) (expression_statement "SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);" (call_expression "SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception)" identifier (argument_list "(image_00,OpaqueAlphaChannel,exception)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (0 < (int)uVar12) {\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }" if (parenthesized_expression "(0 < (int)uVar12)" ( (binary_expression "0 < (int)uVar12" number_literal < (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    local_d4 = local_80;\n                    while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }\n                  }" { (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" identifier = identifier) ;) (while_statement "while (pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0) {\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }" while (parenthesized_expression "(pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0)" ( (comma_expression "pIVar17 = (Image *)exception,\n                          pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception), pQVar11 != (Quantum *)0x0" (assignment_expression "pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception)" identifier = (call_expression "GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                       exception)" identifier (argument_list "(image_00,local_b8,local_d4,columns,1,\n                                                       exception)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "pQVar11 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) )) (compound_statement "{\n                      if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }\n                      pIVar17 = (Image *)exception;\n                      MVar10 = SyncAuthenticPixels(image_00,exception);\n                      if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;\n                    }" { (if_statement "if (0 < (int)columns) {\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }" if (parenthesized_expression "(0 < (int)columns)" ( (binary_expression "0 < (int)columns" number_literal < (cast_expression "(int)columns" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        sVar22 = image_00->number_channels;\n                        if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }\n                      }" { (expression_statement "sVar22 = image_00->number_channels;" (assignment_expression "sVar22 = image_00->number_channels" identifier = (field_expression "image_00->number_channels" identifier -> field_identifier)) ;) (if_statement "if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }" if (parenthesized_expression "(image_00->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image_00->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image_00->channel_map[4].traits" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                          iVar19 = image_00->channel_map[4].offset;\n                          uVar15 = 0;\n                          do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);\n                        }" { (expression_statement "iVar19 = image_00->channel_map[4].offset;" (assignment_expression "iVar19 = image_00->channel_map[4].offset" identifier = (field_expression "image_00->channel_map[4].offset" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          } while (uVar15 != columns);" do (compound_statement "{\n                            pQVar11[iVar19] = 0.0;\n                            uVar15 = uVar15 + 1;\n                            pQVar11 = pQVar11 + sVar22;\n                          }" { (expression_statement "pQVar11[iVar19] = 0.0;" (assignment_expression "pQVar11[iVar19] = 0.0" (subscript_expression "pQVar11[iVar19]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) (expression_statement "pQVar11 = pQVar11 + sVar22;" (assignment_expression "pQVar11 = pQVar11 + sVar22" identifier = (binary_expression "pQVar11 + sVar22" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar15 != columns)" ( (binary_expression "uVar15 != columns" identifier != identifier) )) ;) })) })) (expression_statement "pIVar17 = (Image *)exception;" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "MVar10 = SyncAuthenticPixels(image_00,exception);" (assignment_expression "MVar10 = SyncAuthenticPixels(image_00,exception)" identifier = (call_expression "SyncAuthenticPixels(image_00,exception)" identifier (argument_list "(image_00,exception)" ( identifier , identifier )))) ;) (if_statement "if ((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)) break;" if (parenthesized_expression "((MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80))" ( (binary_expression "(MVar10 == MagickFalse) ||\n                         (local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)" (parenthesized_expression "(MVar10 == MagickFalse)" ( (binary_expression "MVar10 == MagickFalse" identifier == identifier) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80)" ( (comma_expression "local_d4 = local_d4 + 1, local_d4 == uVar12 + local_80" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "local_d4 == uVar12 + local_80" identifier == (binary_expression "uVar12 + local_80" identifier + identifier))) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17);" (call_expression "CompareImagesBounds(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17)" identifier (argument_list "(&local_5c,image_00,local_d8,(LayerMethod)exception,\n                                    (ExceptionInfo *)pIVar17)" ( (pointer_expression "&local_5c" & identifier) , identifier , identifier , (cast_expression "(LayerMethod)exception" ( (type_descriptor "LayerMethod" type_identifier) ) identifier) , (cast_expression "(ExceptionInfo *)pIVar17" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "try_bounds.width = local_5c.width;" (assignment_expression "try_bounds.width = local_5c.width" (field_expression "try_bounds.width" identifier . field_identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "try_bounds.y = local_5c.y;" (assignment_expression "try_bounds.y = local_5c.y" (field_expression "try_bounds.y" identifier . field_identifier) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (expression_statement "try_bounds.height = local_5c.height;" (assignment_expression "try_bounds.height = local_5c.height" (field_expression "try_bounds.height" identifier . field_identifier) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "try_bounds.x = local_5c.x;" (assignment_expression "try_bounds.x = local_5c.x" (field_expression "try_bounds.x" identifier . field_identifier) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "local_8c = uVar12;" (assignment_expression "local_8c = uVar12" identifier = identifier) ;) (if_statement "if ((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)) {\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }" if (parenthesized_expression "((-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse))" ( (binary_expression "(-1 < local_5c.x) &&\n                   (MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)" (parenthesized_expression "(-1 < local_5c.x)" ( (binary_expression "-1 < local_5c.x" number_literal < (field_expression "local_5c.x" identifier . field_identifier)) )) && (parenthesized_expression "(MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse)" ( (comma_expression "MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20),\n                   MVar10 != MagickFalse" (assignment_expression "MVar10 = IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" identifier = (call_expression "IsBoundsCleared((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" identifier (argument_list "((Image *)exception,pIVar17,\n                                             (RectangleInfo *)in_stack_ffffff1c,in_stack_ffffff20)" ( (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(RectangleInfo *)in_stack_ffffff1c" ( (type_descriptor "RectangleInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "MVar10 != MagickFalse" identifier != identifier)) ))) )) (compound_statement "{\n                  CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);\n                  try_bounds.height = local_5c.height;\n                  try_bounds.width = local_5c.width;\n                  try_bounds.y = local_5c.y;\n                  try_bounds.x = local_5c.x;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  pIVar17 = (Image *)exception;\n                  CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);\n                  try_bounds.width = local_5c.width;\n                  try_bounds.height = local_5c.height;\n                  try_bounds.x = local_5c.x;\n                  try_bounds.y = local_5c.y;\n                }" { (expression_statement "CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception);" (call_expression "CompareImagesBounds(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception)" identifier (argument_list "(&local_5c,local_d8->previous,local_d8,CompareClearLayer,\n                                      exception)" ( (pointer_expression "&local_5c" & identifier) , (field_expression "local_d8->previous" identifier -> field_identifier) , identifier , identifier , identifier ))) ;) (expression_statement "try_bounds.height = local_5c.height;" (assignment_expression "try_bounds.height = local_5c.height" (field_expression "try_bounds.height" identifier . field_identifier) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "try_bounds.width = local_5c.width;" (assignment_expression "try_bounds.width = local_5c.width" (field_expression "try_bounds.width" identifier . field_identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "try_bounds.y = local_5c.y;" (assignment_expression "try_bounds.y = local_5c.y" (field_expression "try_bounds.y" identifier . field_identifier) = (field_expression "local_5c.y" identifier . field_identifier)) ;) (expression_statement "try_bounds.x = local_5c.x;" (assignment_expression "try_bounds.x = local_5c.x" (field_expression "try_bounds.x" identifier . field_identifier) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (if_statement "if ((int)local_b8 < 0) {\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }\n                  else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }" if (parenthesized_expression "((int)local_b8 < 0)" ( (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    local_8c = local_5c.height;\n                    columns = local_5c.width;\n                    local_b8 = local_5c.x;\n                    local_80 = local_5c.y;\n                  }" { (expression_statement "local_8c = local_5c.height;" (assignment_expression "local_8c = local_5c.height" identifier = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "columns = local_5c.width;" (assignment_expression "columns = local_5c.width" identifier = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "local_b8 = local_5c.x;" (assignment_expression "local_b8 = local_5c.x" identifier = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "local_80 = local_5c.y;" (assignment_expression "local_80 = local_5c.y" identifier = (field_expression "local_5c.y" identifier . field_identifier)) ;) }) (else_clause "else {\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }\n                    if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                  }" { (if_statement "if (local_5c.x < (int)local_b8) {\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }\n                    else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }" if (parenthesized_expression "(local_5c.x < (int)local_b8)" ( (binary_expression "local_5c.x < (int)local_b8" (field_expression "local_5c.x" identifier . field_identifier) < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      iVar19 = local_b8 - local_5c.x;\n                      local_b8 = local_5c.x;\n                      uVar15 = iVar19 + columns;\n                      columns = local_5c.width;\n                      if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }\n                    }" { (expression_statement "iVar19 = local_b8 - local_5c.x;" (assignment_expression "iVar19 = local_b8 - local_5c.x" identifier = (binary_expression "local_b8 - local_5c.x" identifier - (field_expression "local_5c.x" identifier . field_identifier))) ;) (expression_statement "local_b8 = local_5c.x;" (assignment_expression "local_b8 = local_5c.x" identifier = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "uVar15 = iVar19 + columns;" (assignment_expression "uVar15 = iVar19 + columns" identifier = (binary_expression "iVar19 + columns" identifier + identifier)) ;) (expression_statement "columns = local_5c.width;" (assignment_expression "columns = local_5c.width" identifier = (field_expression "local_5c.width" identifier . field_identifier)) ;) (if_statement "if (local_5c.width <= uVar15) {\n                        columns = uVar15;\n                      }" if (parenthesized_expression "(local_5c.width <= uVar15)" ( (binary_expression "local_5c.width <= uVar15" (field_expression "local_5c.width" identifier . field_identifier) <= identifier) )) (compound_statement "{\n                        columns = uVar15;\n                      }" { (expression_statement "columns = uVar15;" (assignment_expression "columns = uVar15" identifier = identifier) ;) })) }) (else_clause "else {\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }" else (compound_statement "{\n                      try_bounds.width = (local_5c.x - local_b8) + local_5c.width;\n                      if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }\n                    }" { (expression_statement "try_bounds.width = (local_5c.x - local_b8) + local_5c.width;" (assignment_expression "try_bounds.width = (local_5c.x - local_b8) + local_5c.width" (field_expression "try_bounds.width" identifier . field_identifier) = (binary_expression "(local_5c.x - local_b8) + local_5c.width" (parenthesized_expression "(local_5c.x - local_b8)" ( (binary_expression "local_5c.x - local_b8" (field_expression "local_5c.x" identifier . field_identifier) - identifier) )) + (field_expression "local_5c.width" identifier . field_identifier))) ;) (if_statement "if (columns < try_bounds.width) {\n                        columns = try_bounds.width;\n                      }" if (parenthesized_expression "(columns < try_bounds.width)" ( (binary_expression "columns < try_bounds.width" identifier < (field_expression "try_bounds.width" identifier . field_identifier)) )) (compound_statement "{\n                        columns = try_bounds.width;\n                      }" { (expression_statement "columns = try_bounds.width;" (assignment_expression "columns = try_bounds.width" identifier = (field_expression "try_bounds.width" identifier . field_identifier)) ;) })) }))) (if_statement "if (local_5c.y < (int)local_80) {\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }\n                    else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }" if (parenthesized_expression "(local_5c.y < (int)local_80)" ( (binary_expression "local_5c.y < (int)local_80" (field_expression "local_5c.y" identifier . field_identifier) < (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      uVar12 = (local_80 - local_5c.y) + uVar12;\n                      local_80 = local_5c.y;\n                      local_8c = local_5c.height;\n                      if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }" { (expression_statement "uVar12 = (local_80 - local_5c.y) + uVar12;" (assignment_expression "uVar12 = (local_80 - local_5c.y) + uVar12" identifier = (binary_expression "(local_80 - local_5c.y) + uVar12" (parenthesized_expression "(local_80 - local_5c.y)" ( (binary_expression "local_80 - local_5c.y" identifier - (field_expression "local_5c.y" identifier . field_identifier)) )) + identifier)) ;) (expression_statement "local_80 = local_5c.y;" (assignment_expression "local_80 = local_5c.y" identifier = (field_expression "local_5c.y" identifier . field_identifier)) ;) (expression_statement "local_8c = local_5c.height;" (assignment_expression "local_8c = local_5c.height" identifier = (field_expression "local_5c.height" identifier . field_identifier)) ;) (if_statement "if (local_5c.height <= uVar12) {\n                        local_8c = uVar12;\n                      }" if (parenthesized_expression "(local_5c.height <= uVar12)" ( (binary_expression "local_5c.height <= uVar12" (field_expression "local_5c.height" identifier . field_identifier) <= identifier) )) (compound_statement "{\n                        local_8c = uVar12;\n                      }" { (expression_statement "local_8c = uVar12;" (assignment_expression "local_8c = uVar12" identifier = identifier) ;) })) }) (else_clause "else {\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }" else (compound_statement "{\n                      try_bounds.height = (local_5c.y - local_80) + local_5c.height;\n                      local_8c = try_bounds.height;\n                      if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }\n                    }" { (expression_statement "try_bounds.height = (local_5c.y - local_80) + local_5c.height;" (assignment_expression "try_bounds.height = (local_5c.y - local_80) + local_5c.height" (field_expression "try_bounds.height" identifier . field_identifier) = (binary_expression "(local_5c.y - local_80) + local_5c.height" (parenthesized_expression "(local_5c.y - local_80)" ( (binary_expression "local_5c.y - local_80" (field_expression "local_5c.y" identifier . field_identifier) - identifier) )) + (field_expression "local_5c.height" identifier . field_identifier))) ;) (expression_statement "local_8c = try_bounds.height;" (assignment_expression "local_8c = try_bounds.height" identifier = (field_expression "try_bounds.height" identifier . field_identifier)) ;) (if_statement "if (try_bounds.height <= uVar12) {\n                        local_8c = uVar12;\n                      }" if (parenthesized_expression "(try_bounds.height <= uVar12)" ( (binary_expression "try_bounds.height <= uVar12" (field_expression "try_bounds.height" identifier . field_identifier) <= identifier) )) (compound_statement "{\n                        local_8c = uVar12;\n                      }" { (expression_statement "local_8c = uVar12;" (assignment_expression "local_8c = uVar12" identifier = identifier) ;) })) }))) }))) (if_statement "if (-1 < (int)local_b8) {\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" if (parenthesized_expression "(-1 < (int)local_b8)" ( (binary_expression "-1 < (int)local_b8" number_literal < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" { (if_statement "if (image_00->alpha_trait == UndefinedPixelTrait) {\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }" if (parenthesized_expression "(image_00->alpha_trait == UndefinedPixelTrait)" ( (binary_expression "image_00->alpha_trait == UndefinedPixelTrait" (field_expression "image_00->alpha_trait" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                      in_stack_ffffff1c = exception;\n                      SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);\n                    }" { (expression_statement "in_stack_ffffff1c = exception;" (assignment_expression "in_stack_ffffff1c = exception" identifier = identifier) ;) (expression_statement "SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception);" (call_expression "SetImageAlphaChannel(image_00,OpaqueAlphaChannel,exception)" identifier (argument_list "(image_00,OpaqueAlphaChannel,exception)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" if (parenthesized_expression "(0 < (int)local_8c)" ( (binary_expression "0 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      local_d4 = local_80;\n                      while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" { (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" identifier = identifier) ;) (while_statement "while (pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0) {\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" while (parenthesized_expression "(pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0)" ( (comma_expression "pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception), pQVar11 != (Quantum *)0x0" (assignment_expression "pQVar11 = GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception)" identifier = (call_expression "GetAuthenticPixels(image_00,local_b8,local_d4,columns,1,\n                                                          exception)" identifier (argument_list "(image_00,local_b8,local_d4,columns,1,\n                                                          exception)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "pQVar11 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n                        if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }\n                        MVar10 = SyncAuthenticPixels(image_00,exception);\n                        if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" { (if_statement "if (0 < (int)columns) {\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }" if (parenthesized_expression "(0 < (int)columns)" ( (binary_expression "0 < (int)columns" number_literal < (cast_expression "(int)columns" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          sVar22 = image_00->number_channels;\n                          if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }\n                        }" { (expression_statement "sVar22 = image_00->number_channels;" (assignment_expression "sVar22 = image_00->number_channels" identifier = (field_expression "image_00->number_channels" identifier -> field_identifier)) ;) (if_statement "if (image_00->channel_map[4].traits != UndefinedPixelTrait) {\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }" if (parenthesized_expression "(image_00->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image_00->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image_00->channel_map[4].traits" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                            iVar19 = image_00->channel_map[4].offset;\n                            sVar16 = 0;\n                            do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);\n                          }" { (expression_statement "iVar19 = image_00->channel_map[4].offset;" (assignment_expression "iVar19 = image_00->channel_map[4].offset" identifier = (field_expression "image_00->channel_map[4].offset" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "sVar16 = 0;" (assignment_expression "sVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            } while (columns != sVar16);" do (compound_statement "{\n                              pQVar11[iVar19] = 0.0;\n                              sVar16 = sVar16 + 1;\n                              pQVar11 = pQVar11 + sVar22;\n                            }" { (expression_statement "pQVar11[iVar19] = 0.0;" (assignment_expression "pQVar11[iVar19] = 0.0" (subscript_expression "pQVar11[iVar19]" identifier [ identifier ]) = number_literal) ;) (expression_statement "sVar16 = sVar16 + 1;" (assignment_expression "sVar16 = sVar16 + 1" identifier = (binary_expression "sVar16 + 1" identifier + number_literal)) ;) (expression_statement "pQVar11 = pQVar11 + sVar22;" (assignment_expression "pQVar11 = pQVar11 + sVar22" identifier = (binary_expression "pQVar11 + sVar22" identifier + identifier)) ;) }) while (parenthesized_expression "(columns != sVar16)" ( (binary_expression "columns != sVar16" identifier != identifier) )) ;) })) })) (expression_statement "MVar10 = SyncAuthenticPixels(image_00,exception);" (assignment_expression "MVar10 = SyncAuthenticPixels(image_00,exception)" identifier = (call_expression "SyncAuthenticPixels(image_00,exception)" identifier (argument_list "(image_00,exception)" ( identifier , identifier )))) ;) (if_statement "if ((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;" if (parenthesized_expression "((MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4))" ( (binary_expression "(MVar10 == MagickFalse) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" (parenthesized_expression "(MVar10 == MagickFalse)" ( (binary_expression "MVar10 == MagickFalse" identifier == identifier) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" ( (comma_expression "local_d4 = local_d4 + 1, local_8c + local_80 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "local_8c + local_80 == local_d4" (binary_expression "local_8c + local_80" identifier + identifier) == identifier)) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "pIVar17 = (Image *)exception;" (assignment_expression "pIVar17 = (Image *)exception" identifier = (cast_expression "(Image *)exception" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception);" (call_expression "CompareImagesBounds(&local_5c,image_00,local_d8,CompareOverlayLayer,exception)" identifier (argument_list "(&local_5c,image_00,local_d8,CompareOverlayLayer,exception)" ( (pointer_expression "&local_5c" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "try_bounds.width = local_5c.width;" (assignment_expression "try_bounds.width = local_5c.width" (field_expression "try_bounds.width" identifier . field_identifier) = (field_expression "local_5c.width" identifier . field_identifier)) ;) (expression_statement "try_bounds.height = local_5c.height;" (assignment_expression "try_bounds.height = local_5c.height" (field_expression "try_bounds.height" identifier . field_identifier) = (field_expression "local_5c.height" identifier . field_identifier)) ;) (expression_statement "try_bounds.x = local_5c.x;" (assignment_expression "try_bounds.x = local_5c.x" (field_expression "try_bounds.x" identifier . field_identifier) = (field_expression "local_5c.x" identifier . field_identifier)) ;) (expression_statement "try_bounds.y = local_5c.y;" (assignment_expression "try_bounds.y = local_5c.y" (field_expression "try_bounds.y" identifier . field_identifier) = (field_expression "local_5c.y" identifier . field_identifier)) ;) })) (expression_statement "iVar19 = *local_c8;" (assignment_expression "iVar19 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (expression_statement "pIVar18 = image_00;" (assignment_expression "pIVar18 = image_00" identifier = identifier) ;) (if_statement "if (try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" if (parenthesized_expression "(try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1])" ( (binary_expression "try_bounds.height * try_bounds.width + local_8c * columns <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]" (binary_expression "try_bounds.height * try_bounds.width + local_8c * columns" (binary_expression "try_bounds.height * try_bounds.width" (field_expression "try_bounds.height" identifier . field_identifier) * (field_expression "try_bounds.width" identifier . field_identifier)) + (binary_expression "local_8c * columns" identifier * identifier)) < (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]" (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1]" (binary_expression "local_94 * local_98" identifier * identifier) + (binary_expression "*puVar1 * puVar1[1]" (pointer_expression "*puVar1" * identifier) * (subscript_expression "puVar1[1]" identifier [ number_literal ]))) + (binary_expression "*puVar20 * puVar20[1]" (pointer_expression "*puVar20" * identifier) * (subscript_expression "puVar20[1]" identifier [ number_literal ])))) )) (compound_statement "{\n                  *puVar1 = columns;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar20[1] = try_bounds.height;\n                  *puVar20 = try_bounds.width;\n                  puVar20[2] = try_bounds.x;\n                  puVar20[3] = try_bounds.y;\n                  if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  pIVar9 = DestroyImage(pIVar9);\n                  *local_c8 = 2;\n                  if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" { (expression_statement "*puVar1 = columns;" (assignment_expression "*puVar1 = columns" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_8c;" (assignment_expression "puVar1[1] = local_8c" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_b8;" (assignment_expression "puVar1[2] = local_b8" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_80;" (assignment_expression "puVar1[3] = local_80" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[1] = try_bounds.height;" (assignment_expression "puVar20[1] = try_bounds.height" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = (field_expression "try_bounds.height" identifier . field_identifier)) ;) (expression_statement "*puVar20 = try_bounds.width;" (assignment_expression "*puVar20 = try_bounds.width" (pointer_expression "*puVar20" * identifier) = (field_expression "try_bounds.width" identifier . field_identifier)) ;) (expression_statement "puVar20[2] = try_bounds.x;" (assignment_expression "puVar20[2] = try_bounds.x" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = (field_expression "try_bounds.x" identifier . field_identifier)) ;) (expression_statement "puVar20[3] = try_bounds.y;" (assignment_expression "puVar20[3] = try_bounds.y" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = (field_expression "try_bounds.y" identifier . field_identifier)) ;) (if_statement "if (iVar19 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" if (parenthesized_expression "(iVar19 != 9)" ( (binary_expression "iVar19 != 9" identifier != number_literal) )) (compound_statement "{\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" { (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;) })) (expression_statement "pIVar9 = DestroyImage(pIVar9);" (assignment_expression "pIVar9 = DestroyImage(pIVar9)" identifier = (call_expression "DestroyImage(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (if_statement "if (pIVar9 != (Image *)0x0) goto LAB_000fe9cd;" if (parenthesized_expression "(pIVar9 != (Image *)0x0)" ( (binary_expression "pIVar9 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;)) (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" identifier = (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier )))) ;) (if_statement "if (*local_c8 == 2) {\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }" if (parenthesized_expression "(*local_c8 == 2)" ( (binary_expression "*local_c8 == 2" (pointer_expression "*local_c8" * identifier) == number_literal) )) (compound_statement "{\n                    pIVar18 = (Image *)0x0;\n                    local_a8 = image_00;\n                    goto LAB_000fee89;\n                  }" { (expression_statement "pIVar18 = (Image *)0x0;" (assignment_expression "pIVar18 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = image_00;" (assignment_expression "local_a8 = image_00" identifier = identifier) ;) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;) })) (goto_statement "goto LAB_000fe9f5;" goto statement_identifier ;) })) (if_statement "if (iVar19 != 9) goto LAB_000fe9cd;" if (parenthesized_expression "(iVar19 != 9)" ( (binary_expression "iVar19 != 9" identifier != number_literal) )) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;)) (expression_statement "pIVar18 = DestroyImage(image_00);" (assignment_expression "pIVar18 = DestroyImage(image_00)" identifier = (call_expression "DestroyImage(image_00)" identifier (argument_list "(image_00)" ( identifier )))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "memory[local_cc * 4 + 4] = *puVar20;" (assignment_expression "memory[local_cc * 4 + 4] = *puVar20" (subscript_expression "memory[local_cc * 4 + 4]" identifier [ (binary_expression "local_cc * 4 + 4" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "memory[local_cc * 4 + 5] = puVar20[1];" (assignment_expression "memory[local_cc * 4 + 5] = puVar20[1]" (subscript_expression "memory[local_cc * 4 + 5]" identifier [ (binary_expression "local_cc * 4 + 5" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (expression_statement "memory[local_cc * 4 + 6] = puVar20[2];" (assignment_expression "memory[local_cc * 4 + 6] = puVar20[2]" (subscript_expression "memory[local_cc * 4 + 6]" identifier [ (binary_expression "local_cc * 4 + 6" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar20[2]" identifier [ number_literal ])) ;) (expression_statement "memory[local_cc * 4 + 7] = puVar20[3];" (assignment_expression "memory[local_cc * 4 + 7] = puVar20[3]" (subscript_expression "memory[local_cc * 4 + 7]" identifier [ (binary_expression "local_cc * 4 + 7" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar20[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar20 = local_94;" (assignment_expression "*puVar20 = local_94" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "puVar20[1] = local_98;" (assignment_expression "puVar20[1] = local_98" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[2] = x;" (assignment_expression "puVar20[2] = x" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[3] = sVar7;" (assignment_expression "puVar20[3] = sVar7" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "memory_00[local_cc + 0x40000000] = 2;" (assignment_expression "memory_00[local_cc + 0x40000000] = 2" (subscript_expression "memory_00[local_cc + 0x40000000]" identifier [ (binary_expression "local_cc + 0x40000000" identifier + number_literal) ]) = number_literal) ;) (expression_statement "local_a0 = local_cc + 0x40000000;" (assignment_expression "local_a0 = local_cc + 0x40000000" identifier = (binary_expression "local_cc + 0x40000000" identifier + number_literal)) ;) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" identifier = (binary_expression "local_cc + 1" identifier + number_literal)) ;) (expression_statement "local_a8 = pIVar9;" (assignment_expression "local_a8 = pIVar9" identifier = identifier) ;) (expression_statement "pIVar9 = (Image *)0x0;" (assignment_expression "pIVar9 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000fee89:\n                local_c8 = memory_00 + local_a0;" statement_identifier : (expression_statement "local_c8 = memory_00 + local_a0;" (assignment_expression "local_c8 = memory_00 + local_a0" identifier = (binary_expression "memory_00 + local_a0" identifier + identifier)) ;)) (labeled_statement "LAB_000fea38:\n                memory_00[local_cc] = *local_c8;" statement_identifier : (expression_statement "memory_00[local_cc] = *local_c8;" (assignment_expression "memory_00[local_cc] = *local_c8" (subscript_expression "memory_00[local_cc]" identifier [ identifier ]) = (pointer_expression "*local_c8" * identifier)) ;)) }))) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" identifier = (binary_expression "local_cc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = GetNextImageInList(local_d8);" (assignment_expression "local_d8 = GetNextImageInList(local_d8)" identifier = (call_expression "GetNextImageInList(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;) }) while (parenthesized_expression "(local_d8 != (Image *)0x0)" ( (binary_expression "local_d8 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "exception_00 = AcquireExceptionInfo();" (assignment_expression "exception_00 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "pIVar9 = GetFirstImageInList(image);" (assignment_expression "pIVar9 = GetFirstImageInList(image)" identifier = (call_expression "GetFirstImageInList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "optimized_image = NewImageList();" (assignment_expression "optimized_image = NewImageList()" identifier = (call_expression "NewImageList()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d8 = (Image *)0x0;" (assignment_expression "local_d8 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x000ff4a8:\n          if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }" statement_identifier : (if_statement "if (pIVar9 != (Image *)0x0) {\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }" if (parenthesized_expression "(pIVar9 != (Image *)0x0)" ( (binary_expression "pIVar9 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );\n          }" { (do_statement "do {\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            } while( true );" do (compound_statement "{\n              pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);\n              if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }\n              (pIVar17->background_color).alpha_trait = BlendPixelTrait;\n              dVar6 = DAT_002df8d8;\n              pDVar13 = memory_00 + (int)local_d8;\n              if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }\n              pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );\n              DestroyImage(pIVar17);\n              if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;\n              pIVar18->dispose = *pDVar13;\n              if (*pDVar13 != 9) goto code_r0x000ff534;\n              pIVar18->delay = 0;\n              pIVar18->dispose = NoneDispose;\n              AppendImageToList(&optimized_image,pIVar18);\n              local_d8 = (Image *)((int)local_d8 + 1);\n            }" { (expression_statement "pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception);" (assignment_expression "pIVar17 = CloneImage(pIVar9,0,0,MagickTrue,exception)" identifier = (call_expression "CloneImage(pIVar9,0,0,MagickTrue,exception)" identifier (argument_list "(pIVar9,0,0,MagickTrue,exception)" ( identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (pIVar17 == (Image *)0x0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }" if (parenthesized_expression "(pIVar17 == (Image *)0x0)" ( (binary_expression "pIVar17 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);\n                RelinquishMagickMemory(memory);\n                RelinquishMagickMemory(memory_00);\n                pIVar17 = (Image *)0x0;\n                DestroyImageList(optimized_image);\n                goto LAB_000fe7b4;\n              }" { (labeled_statement "LAB_000ff7a7:\n                DestroyExceptionInfo(exception_00);" statement_identifier : (expression_statement "DestroyExceptionInfo(exception_00);" (call_expression "DestroyExceptionInfo(exception_00)" identifier (argument_list "(exception_00)" ( identifier ))) ;)) (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) (expression_statement "pIVar17 = (Image *)0x0;" (assignment_expression "pIVar17 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DestroyImageList(optimized_image);" (call_expression "DestroyImageList(optimized_image)" identifier (argument_list "(optimized_image)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "(pIVar17->background_color).alpha_trait = BlendPixelTrait;" (assignment_expression "(pIVar17->background_color).alpha_trait = BlendPixelTrait" (field_expression "(pIVar17->background_color).alpha_trait" (parenthesized_expression "(pIVar17->background_color)" ( (field_expression "pIVar17->background_color" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" identifier = identifier) ;) (expression_statement "pDVar13 = memory_00 + (int)local_d8;" (assignment_expression "pDVar13 = memory_00 + (int)local_d8" identifier = (binary_expression "memory_00 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*pDVar13 == 8) {\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }" if (parenthesized_expression "(*pDVar13 == 8)" ( (binary_expression "*pDVar13 == 8" (pointer_expression "*pDVar13" * identifier) == number_literal) )) (compound_statement "{\n                iVar19 = 0;\n                pDVar8 = memory_00 + (int)local_d8 + 1;\n                do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);\n                sVar22 = pIVar9->delay;\n                dVar3 = (double)pIVar9->ticks_per_second;\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                pIVar17->ticks_per_second = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));\n                pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;\n              }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pDVar8 = memory_00 + (int)local_d8 + 1;" (assignment_expression "pDVar8 = memory_00 + (int)local_d8 + 1" identifier = (binary_expression "memory_00 + (int)local_d8 + 1" (binary_expression "memory_00 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (do_statement "do {\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                } while (*pDVar13 == 8);" do (compound_statement "{\n                  pDVar13 = pDVar8;\n                  dVar4 = (double)pIVar9->ticks_per_second;\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));\n                  iVar19 = iVar19 + (int)local_74;\n                  pIVar9 = GetNextImageInList(pIVar9);\n                  local_d8 = (Image *)((int)local_d8 + 1);\n                  pDVar8 = pDVar13 + 1;\n                }" { (expression_statement "pDVar13 = pDVar8;" (assignment_expression "pDVar13 = pDVar8" identifier = identifier) ;) (expression_statement "dVar4 = (double)pIVar9->ticks_per_second;" (assignment_expression "dVar4 = (double)pIVar9->ticks_per_second" identifier = (cast_expression "(double)pIVar9->ticks_per_second" ( (type_descriptor "double" primitive_type) ) (field_expression "pIVar9->ticks_per_second" identifier -> field_identifier))) ;) (expression_statement "dVar3 = dVar6;" (assignment_expression "dVar3 = dVar6" identifier = identifier) ;) (expression_statement "dVar5 = dVar4;" (assignment_expression "dVar5 = dVar4" identifier = identifier) ;) (if_statement "if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" if (parenthesized_expression "(dVar4 < 0.0)" ( (binary_expression "dVar4 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" { (expression_statement "dVar3 = DAT_002df8e0;" (assignment_expression "dVar3 = DAT_002df8e0" identifier = identifier) ;) (expression_statement "dVar5 = -dVar4;" (assignment_expression "dVar5 = -dVar4" identifier = (unary_expression "-dVar4" - identifier)) ;) })) (if_statement "if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" if (parenthesized_expression "(DAT_002df2d0 <= dVar5)" ( (binary_expression "DAT_002df2d0 <= dVar5" identifier <= identifier) )) (compound_statement "{\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" { (expression_statement "dVar3 = (double)DAT_002df8b4 / dVar4;" (assignment_expression "dVar3 = (double)DAT_002df8b4 / dVar4" identifier = (binary_expression "(double)DAT_002df8b4 / dVar4" (cast_expression "(double)DAT_002df8b4" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) })) (expression_statement "local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000));" (assignment_expression "local_74 = (longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000))" identifier = (cast_expression "(longlong)ROUND(dVar3 * (double)(pIVar9->delay * 1000))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 * (double)(pIVar9->delay * 1000))" identifier (argument_list "(dVar3 * (double)(pIVar9->delay * 1000))" ( (binary_expression "dVar3 * (double)(pIVar9->delay * 1000)" identifier * (cast_expression "(double)(pIVar9->delay * 1000)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(pIVar9->delay * 1000)" ( (binary_expression "pIVar9->delay * 1000" (field_expression "pIVar9->delay" identifier -> field_identifier) * number_literal) )))) ))))) ;) (expression_statement "iVar19 = iVar19 + (int)local_74;" (assignment_expression "iVar19 = iVar19 + (int)local_74" identifier = (binary_expression "iVar19 + (int)local_74" identifier + (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pIVar9 = GetNextImageInList(pIVar9);" (assignment_expression "pIVar9 = GetNextImageInList(pIVar9)" identifier = (call_expression "GetNextImageInList(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "local_d8 = (Image *)((int)local_d8 + 1);" (assignment_expression "local_d8 = (Image *)((int)local_d8 + 1)" identifier = (cast_expression "(Image *)((int)local_d8 + 1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_d8 + 1)" ( (binary_expression "(int)local_d8 + 1" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pDVar8 = pDVar13 + 1;" (assignment_expression "pDVar8 = pDVar13 + 1" identifier = (binary_expression "pDVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pDVar13 == 8)" ( (binary_expression "*pDVar13 == 8" (pointer_expression "*pDVar13" * identifier) == number_literal) )) ;) (expression_statement "sVar22 = pIVar9->delay;" (assignment_expression "sVar22 = pIVar9->delay" identifier = (field_expression "pIVar9->delay" identifier -> field_identifier)) ;) (expression_statement "dVar3 = (double)pIVar9->ticks_per_second;" (assignment_expression "dVar3 = (double)pIVar9->ticks_per_second" identifier = (cast_expression "(double)pIVar9->ticks_per_second" ( (type_descriptor "double" primitive_type) ) (field_expression "pIVar9->ticks_per_second" identifier -> field_identifier))) ;) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" identifier = identifier) ;) (expression_statement "dVar4 = dVar3;" (assignment_expression "dVar4 = dVar3" identifier = identifier) ;) (if_statement "if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" if (parenthesized_expression "(dVar3 < 0.0)" ( (binary_expression "dVar3 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" { (expression_statement "dVar6 = DAT_002df8e0;" (assignment_expression "dVar6 = DAT_002df8e0" identifier = identifier) ;) (expression_statement "dVar4 = -dVar3;" (assignment_expression "dVar4 = -dVar3" identifier = (unary_expression "-dVar3" - identifier)) ;) })) (if_statement "if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" if (parenthesized_expression "(DAT_002df2d0 <= dVar4)" ( (binary_expression "DAT_002df2d0 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" { (expression_statement "dVar6 = (double)DAT_002df8b4 / dVar3;" (assignment_expression "dVar6 = (double)DAT_002df8b4 / dVar3" identifier = (binary_expression "(double)DAT_002df8b4 / dVar3" (cast_expression "(double)DAT_002df8b4" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) })) (expression_statement "pIVar17->ticks_per_second = 100;" (assignment_expression "pIVar17->ticks_per_second = 100" (field_expression "pIVar17->ticks_per_second" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000));" (assignment_expression "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000))" (field_expression "local_74._0_4_" identifier . field_identifier) = (cast_expression "(int)(longlong)ROUND(dVar6 * (double)(sVar22 * 1000))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(dVar6 * (double)(sVar22 * 1000))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar6 * (double)(sVar22 * 1000))" identifier (argument_list "(dVar6 * (double)(sVar22 * 1000))" ( (binary_expression "dVar6 * (double)(sVar22 * 1000)" identifier * (cast_expression "(double)(sVar22 * 1000)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(sVar22 * 1000)" ( (binary_expression "sVar22 * 1000" identifier * number_literal) )))) )))))) ;) (expression_statement "pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000;" (assignment_expression "pIVar17->delay = (uint)(((int)local_74 + iVar19) * 100) / 1000" (field_expression "pIVar17->delay" identifier -> field_identifier) = (binary_expression "(uint)(((int)local_74 + iVar19) * 100) / 1000" (call_expression "(uint)(((int)local_74 + iVar19) * 100)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)local_74 + iVar19) * 100)" ( (binary_expression "((int)local_74 + iVar19) * 100" (parenthesized_expression "((int)local_74 + iVar19)" ( (binary_expression "(int)local_74 + iVar19" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )) * number_literal) ))) / number_literal)) ;) })) (expression_statement "pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 );" (assignment_expression "pIVar18 = CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 )" identifier = (call_expression "CropImage(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 )" identifier (argument_list "(pIVar17,(RectangleInfo *)(memory + (int)local_d8 * 4),exception_00\n                                 )" ( identifier , (cast_expression "(RectangleInfo *)(memory + (int)local_d8 * 4)" ( (type_descriptor "RectangleInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + (int)local_d8 * 4)" ( (binary_expression "memory + (int)local_d8 * 4" identifier + (binary_expression "(int)local_d8 * 4" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) , identifier )))) ;) (expression_statement "DestroyImage(pIVar17);" (call_expression "DestroyImage(pIVar17)" identifier (argument_list "(pIVar17)" ( identifier ))) ;) (if_statement "if (pIVar18 == (Image *)0x0) goto LAB_000ff7a7;" if (parenthesized_expression "(pIVar18 == (Image *)0x0)" ( (binary_expression "pIVar18 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ff7a7;" goto statement_identifier ;)) (expression_statement "pIVar18->dispose = *pDVar13;" (assignment_expression "pIVar18->dispose = *pDVar13" (field_expression "pIVar18->dispose" identifier -> field_identifier) = (pointer_expression "*pDVar13" * identifier)) ;) (if_statement "if (*pDVar13 != 9) goto code_r0x000ff534;" if (parenthesized_expression "(*pDVar13 != 9)" ( (binary_expression "*pDVar13 != 9" (pointer_expression "*pDVar13" * identifier) != number_literal) )) (goto_statement "goto code_r0x000ff534;" goto statement_identifier ;)) (expression_statement "pIVar18->delay = 0;" (assignment_expression "pIVar18->delay = 0" (field_expression "pIVar18->delay" identifier -> field_identifier) = number_literal) ;) (expression_statement "pIVar18->dispose = NoneDispose;" (assignment_expression "pIVar18->dispose = NoneDispose" (field_expression "pIVar18->dispose" identifier -> field_identifier) = identifier) ;) (expression_statement "AppendImageToList(&optimized_image,pIVar18);" (call_expression "AppendImageToList(&optimized_image,pIVar18)" identifier (argument_list "(&optimized_image,pIVar18)" ( (pointer_expression "&optimized_image" & identifier) , identifier ))) ;) (expression_statement "local_d8 = (Image *)((int)local_d8 + 1);" (assignment_expression "local_d8 = (Image *)((int)local_d8 + 1)" identifier = (cast_expression "(Image *)((int)local_d8 + 1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_d8 + 1)" ( (binary_expression "(int)local_d8 + 1" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DestroyExceptionInfo(exception_00);" (call_expression "DestroyExceptionInfo(exception_00)" identifier (argument_list "(exception_00)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) (expression_statement "pIVar17 = GetFirstImageInList(optimized_image);" (assignment_expression "pIVar17 = GetFirstImageInList(optimized_image)" identifier = (call_expression "GetFirstImageInList(optimized_image)" identifier (argument_list "(optimized_image)" ( identifier )))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (labeled_statement "LAB_000ff84d:\n        pIVar17 = (Image *)0x0;" statement_identifier : (expression_statement "pIVar17 = (Image *)0x0;" (assignment_expression "pIVar17 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "tag = "MemoryAllocationFailed";" (assignment_expression "tag = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "severity = ErrorException;" (assignment_expression "severity = ErrorException" identifier = identifier) ;) (expression_statement "sVar22 = 0x3f4;" (assignment_expression "sVar22 = 0x3f4" identifier = number_literal) ;) }))) }) (else_clause "else {\n    sVar22 = pIVar9->columns;\n    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }\n  }" else (compound_statement "{\n    sVar22 = pIVar9->columns;\n    if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }\n  }" { (expression_statement "sVar22 = pIVar9->columns;" (assignment_expression "sVar22 = pIVar9->columns" identifier = (field_expression "pIVar9->columns" identifier -> field_identifier)) ;) (if_statement "if ((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)) {\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }" if (parenthesized_expression "((sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows))" ( (binary_expression "(sVar22 == image->columns) && (sVar16 = image->rows, sVar16 == pIVar9->rows)" (parenthesized_expression "(sVar22 == image->columns)" ( (binary_expression "sVar22 == image->columns" identifier == (field_expression "image->columns" identifier -> field_identifier)) )) && (parenthesized_expression "(sVar16 = image->rows, sVar16 == pIVar9->rows)" ( (comma_expression "sVar16 = image->rows, sVar16 == pIVar9->rows" (assignment_expression "sVar16 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) , (binary_expression "sVar16 == pIVar9->rows" identifier == (field_expression "pIVar9->rows" identifier -> field_identifier))) ))) )) (compound_statement "{\n      if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }\n      tag = "ImagePagesAreNotCoalesced";\n      severity = OptionError;\n      sVar22 = 0x3e3;\n    }" { (if_statement "if (((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))\n      {\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }" if (parenthesized_expression "(((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))))" ( (binary_expression "((pIVar9->page).x == 0) &&\n         (((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width)))" (parenthesized_expression "((pIVar9->page).x == 0)" ( (binary_expression "(pIVar9->page).x == 0" (field_expression "(pIVar9->page).x" (parenthesized_expression "(pIVar9->page)" ( (field_expression "pIVar9->page" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "(((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width)))" ( (parenthesized_expression "((pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width))" ( (binary_expression "(pIVar9->page).y == 0 && (sVar2 = (image->page).width, sVar2 == (pIVar9->page).width)" (binary_expression "(pIVar9->page).y == 0" (field_expression "(pIVar9->page).y" (parenthesized_expression "(pIVar9->page)" ( (field_expression "pIVar9->page" identifier -> field_identifier) )) . field_identifier) == number_literal) && (parenthesized_expression "(sVar2 = (image->page).width, sVar2 == (pIVar9->page).width)" ( (comma_expression "sVar2 = (image->page).width, sVar2 == (pIVar9->page).width" (assignment_expression "sVar2 = (image->page).width" identifier = (field_expression "(image->page).width" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "sVar2 == (pIVar9->page).width" identifier == (field_expression "(pIVar9->page).width" (parenthesized_expression "(pIVar9->page)" ( (field_expression "pIVar9->page" identifier -> field_identifier) )) . field_identifier))) ))) )) ))) )) (compound_statement "{\n        sVar14 = (image->page).height;\n        pIVar17 = pIVar9;\n        while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }\n      }" { (expression_statement "sVar14 = (image->page).height;" (assignment_expression "sVar14 = (image->page).height" identifier = (field_expression "(image->page).height" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pIVar17 = pIVar9;" (assignment_expression "pIVar17 = pIVar9" identifier = identifier) ;) (while_statement "while ((pIVar17->page).height == sVar14) {\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }" while (parenthesized_expression "((pIVar17->page).height == sVar14)" ( (binary_expression "(pIVar17->page).height == sVar14" (field_expression "(pIVar17->page).height" (parenthesized_expression "(pIVar17->page)" ( (field_expression "pIVar17->page" identifier -> field_identifier) )) . field_identifier) == identifier) )) (compound_statement "{\n          pIVar17 = GetNextImageInList(pIVar17);\n          if (pIVar17 == (Image *)0x0) goto LAB_000fe844;\n          if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;\n          if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;\n        }" { (expression_statement "pIVar17 = GetNextImageInList(pIVar17);" (assignment_expression "pIVar17 = GetNextImageInList(pIVar17)" identifier = (call_expression "GetNextImageInList(pIVar17)" identifier (argument_list "(pIVar17)" ( identifier )))) ;) (if_statement "if (pIVar17 == (Image *)0x0) goto LAB_000fe844;" if (parenthesized_expression "(pIVar17 == (Image *)0x0)" ( (binary_expression "pIVar17 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000fe844;" goto statement_identifier ;)) (if_statement "if ((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)) goto LAB_000fe818;" if (parenthesized_expression "((pIVar17->columns != sVar22) || (pIVar17->rows != sVar16))" ( (binary_expression "(pIVar17->columns != sVar22) || (pIVar17->rows != sVar16)" (parenthesized_expression "(pIVar17->columns != sVar22)" ( (binary_expression "pIVar17->columns != sVar22" (field_expression "pIVar17->columns" identifier -> field_identifier) != identifier) )) || (parenthesized_expression "(pIVar17->rows != sVar16)" ( (binary_expression "pIVar17->rows != sVar16" (field_expression "pIVar17->rows" identifier -> field_identifier) != identifier) ))) )) (goto_statement "goto LAB_000fe818;" goto statement_identifier ;)) (if_statement "if ((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)) break;" if (parenthesized_expression "((((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2))" ( (binary_expression "(((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)) ||\n             ((pIVar17->page).width != sVar2)" (parenthesized_expression "(((pIVar17->page).x != 0) || ((pIVar17->page).y != 0))" ( (binary_expression "((pIVar17->page).x != 0) || ((pIVar17->page).y != 0)" (parenthesized_expression "((pIVar17->page).x != 0)" ( (binary_expression "(pIVar17->page).x != 0" (field_expression "(pIVar17->page).x" (parenthesized_expression "(pIVar17->page)" ( (field_expression "pIVar17->page" identifier -> field_identifier) )) . field_identifier) != number_literal) )) || (parenthesized_expression "((pIVar17->page).y != 0)" ( (binary_expression "(pIVar17->page).y != 0" (field_expression "(pIVar17->page).y" (parenthesized_expression "(pIVar17->page)" ( (field_expression "pIVar17->page" identifier -> field_identifier) )) . field_identifier) != number_literal) ))) )) || (parenthesized_expression "((pIVar17->page).width != sVar2)" ( (binary_expression "(pIVar17->page).width != sVar2" (field_expression "(pIVar17->page).width" (parenthesized_expression "(pIVar17->page)" ( (field_expression "pIVar17->page" identifier -> field_identifier) )) . field_identifier) != identifier) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "tag = "ImagePagesAreNotCoalesced";" (assignment_expression "tag = "ImagePagesAreNotCoalesced"" identifier = (string_literal ""ImagePagesAreNotCoalesced"" " string_content ")) ;) (expression_statement "severity = OptionError;" (assignment_expression "severity = OptionError" identifier = identifier) ;) (expression_statement "sVar22 = 0x3e3;" (assignment_expression "sVar22 = 0x3e3" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }" else (compound_statement "{\nLAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";\n      severity = OptionError;\n      sVar22 = 0x3de;\n    }" { (labeled_statement "LAB_000fe818:\n      tag = "ImagesAreNotTheSameSize";" statement_identifier : (expression_statement "tag = "ImagesAreNotTheSameSize";" (assignment_expression "tag = "ImagesAreNotTheSameSize"" identifier = (string_literal ""ImagesAreNotTheSameSize"" " string_content ")) ;)) (expression_statement "severity = OptionError;" (assignment_expression "severity = OptionError" identifier = identifier) ;) (expression_statement "sVar22 = 0x3de;" (assignment_expression "sVar22 = 0x3de" identifier = number_literal) ;) }))) }))) (expression_statement "pIVar17 = (Image *)0x0;" (assignment_expression "pIVar17 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ThrowMagickException\n            (exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",\n             image->filename);" (call_expression "ThrowMagickException\n            (exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",\n             image->filename)" identifier (argument_list "(exception,"MagickCore/layer.c","OptimizeLayerFrames",sVar22,severity,tag,"`%s\'",\n             image->filename)" ( identifier , (string_literal ""MagickCore/layer.c"" " string_content ") , (string_literal ""OptimizeLayerFrames"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (labeled_statement "LAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pIVar17;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pIVar17;\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    return pIVar17;\n  }" { (return_statement "return pIVar17;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000ff534:\n  pIVar9 = GetNextImageInList(pIVar9);" statement_identifier : (expression_statement "pIVar9 = GetNextImageInList(pIVar9);" (assignment_expression "pIVar9 = GetNextImageInList(pIVar9)" identifier = (call_expression "GetNextImageInList(pIVar9)" identifier (argument_list "(pIVar9)" ( identifier )))) ;)) (expression_statement "AppendImageToList(&optimized_image,pIVar18);" (call_expression "AppendImageToList(&optimized_image,pIVar18)" identifier (argument_list "(&optimized_image,pIVar18)" ( (pointer_expression "&optimized_image" & identifier) , identifier ))) ;) (expression_statement "local_d8 = (Image *)((int)local_d8 + 1);" (assignment_expression "local_d8 = (Image *)((int)local_d8 + 1)" identifier = (cast_expression "(Image *)((int)local_d8 + 1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_d8 + 1)" ( (binary_expression "(int)local_d8 + 1" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto joined_r0x000ff4a8;" goto statement_identifier ;) })))
(translation_unit "undefined4 OptimizePlusImageLayers(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}\n\n" (function_definition "undefined4 OptimizePlusImageLayers(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}" type_identifier (function_declarator "OptimizePlusImageLayers(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int *local_c8;" primitive_type (pointer_declarator "*local_c8" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "longlong local_74;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xfe649;" (assignment_expression "uStack_14 = 0xfe649" identifier = number_literal) ;) (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("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }" { (expression_statement "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");" (call_expression "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" identifier (argument_list "("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" ( (string_literal ""image != (const Image *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/layer.c"" " string_content ") , (string_literal ""OptimizeLayerFrames"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (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) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" { (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" identifier (argument_list "("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (expression_statement "iVar10 = GetFirstImageInList(param_1);" (assignment_expression "iVar10 = GetFirstImageInList(param_1)" identifier = (call_expression "GetFirstImageInList(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }" { (labeled_statement "LAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);" statement_identifier : (expression_statement "uVar24 = GetImageListLength(iVar10);" (assignment_expression "uVar24 = GetImageListLength(iVar10)" identifier = (call_expression "GetImageListLength(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;)) (expression_statement "puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);" (assignment_expression "puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20)" identifier = (cast_expression "(uint *)AcquireQuantumMemory(uVar24,0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar24,0x20)" identifier (argument_list "(uVar24,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" if (parenthesized_expression "(puVar12 == (uint *)0x0)" ( (binary_expression "puVar12 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }" { (expression_statement "pcVar26 = "MemoryAllocationFailed";" (assignment_expression "pcVar26 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "uVar25 = 400;" (assignment_expression "uVar25 = 400" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3ed;" (assignment_expression "uVar24 = 0x3ed" identifier = number_literal) ;) }) (else_clause "else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" else (compound_statement "{\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" { (expression_statement "uVar24 = GetImageListLength(param_1);" (assignment_expression "uVar24 = GetImageListLength(param_1)" identifier = (call_expression "GetImageListLength(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);" (assignment_expression "puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(uVar24,8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar24,8)" identifier (argument_list "(uVar24,8)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }" { (expression_statement "local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);" (assignment_expression "local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" identifier = (call_expression "CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" identifier (argument_list "(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 0x18)" * (cast_expression "(undefined4 *)(iVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar10 + 0x1c)" * (cast_expression "(undefined4 *)(iVar10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x1c)" ( (binary_expression "iVar10 + 0x1c" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }" { (expression_statement "*(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);" (assignment_expression "*(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200)" (pointer_expression "*(undefined4 *)(local_a8 + 0x200)" * (cast_expression "(undefined4 *)(local_a8 + 0x200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x200)" ( (binary_expression "local_a8 + 0x200" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x200)" * (cast_expression "(undefined4 *)(iVar10 + 0x200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x200)" ( (binary_expression "iVar10 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(undefined4 *)(iVar10 + 0x204);" (assignment_expression "uVar24 = *(undefined4 *)(iVar10 + 0x204)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x204)" * (cast_expression "(undefined4 *)(iVar10 + 0x204)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x204)" ( (binary_expression "iVar10 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(local_a8 + 0xbc) = 0;" (assignment_expression "*(undefined8 *)(local_a8 + 0xbc) = 0" (pointer_expression "*(undefined8 *)(local_a8 + 0xbc)" * (cast_expression "(undefined8 *)(local_a8 + 0xbc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0xbc)" ( (binary_expression "local_a8 + 0xbc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x208) = 0;" (assignment_expression "*(undefined4 *)(local_a8 + 0x208) = 0" (pointer_expression "*(undefined4 *)(local_a8 + 0x208)" * (cast_expression "(undefined4 *)(local_a8 + 0x208)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x208)" ( (binary_expression "local_a8 + 0x208" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x20c) = 0;" (assignment_expression "*(undefined4 *)(local_a8 + 0x20c) = 0" (pointer_expression "*(undefined4 *)(local_a8 + 0x20c)" * (cast_expression "(undefined4 *)(local_a8 + 0x20c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x20c)" ( (binary_expression "local_a8 + 0x20c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x204) = uVar24;" (assignment_expression "*(undefined4 *)(local_a8 + 0x204) = uVar24" (pointer_expression "*(undefined4 *)(local_a8 + 0x204)" * (cast_expression "(undefined4 *)(local_a8 + 0x204)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x204)" ( (binary_expression "local_a8 + 0x204" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(local_a8 + 0x240) = 1" (pointer_expression "*(undefined4 *)(local_a8 + 0x240)" * (cast_expression "(undefined4 *)(local_a8 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x240)" ( (binary_expression "local_a8 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_a8 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(local_a8 + 0x84) = 4" (pointer_expression "*(undefined4 *)(local_a8 + 0x84)" * (cast_expression "(undefined4 *)(local_a8 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x84)" ( (binary_expression "local_a8 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "SetImageBackgroundColor(local_a8,param_2);" (call_expression "SetImageBackgroundColor(local_a8,param_2)" identifier (argument_list "(local_a8,param_2)" ( identifier , identifier ))) ;) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "*puVar12 = local_5c;" (assignment_expression "*puVar12 = local_5c" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = local_58;" (assignment_expression "puVar12[1] = local_58" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = local_54;" (assignment_expression "puVar12[2] = local_54" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = local_50;" (assignment_expression "puVar12[3] = local_50" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_d8 = GetNextImageInList(iVar10);" (assignment_expression "local_d8 = GetNextImageInList(iVar10)" identifier = (call_expression "GetNextImageInList(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }" if (parenthesized_expression "(local_d8 != 0)" ( (binary_expression "local_d8 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 1;" (assignment_expression "local_cc = 1" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);" do (compound_statement "{\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            }" { (expression_statement "puVar21 = puVar12 + local_cc * 4;" (assignment_expression "puVar21 = puVar12 + local_cc * 4" identifier = (binary_expression "puVar12 + local_cc * 4" identifier + (binary_expression "local_cc * 4" identifier * number_literal))) ;) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "*puVar21 = local_5c;" (assignment_expression "*puVar21 = local_5c" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_58;" (assignment_expression "puVar21[1] = local_58" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = local_54;" (assignment_expression "puVar21[2] = local_54" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_50;" (assignment_expression "puVar21[3] = local_50" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }" { (expression_statement "local_c8 = puVar13 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = puVar13 + local_cc + 0x3fffffff" identifier = (binary_expression "puVar13 + local_cc + 0x3fffffff" (binary_expression "puVar13 + local_cc" identifier + identifier) + number_literal)) ;) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (labeled_statement "LAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" statement_identifier : (if_statement "if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" if (parenthesized_expression "(local_cc == 1)" ( (binary_expression "local_cc == 1" identifier == number_literal) )) (compound_statement "{\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" { (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" { (labeled_statement "LAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);" statement_identifier : (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" identifier = (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier )))) ;)) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (if_statement "if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" if (parenthesized_expression "(iVar14 != 2)" ( (binary_expression "iVar14 != 2" identifier != number_literal) )) (compound_statement "{\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" { (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) (if_statement "if (iVar15 != 0) goto LAB_000fe9f5;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000fe9f5;" goto statement_identifier ;)) (goto_statement "goto LAB_000fea09;" goto statement_identifier ;) })) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = iVar15;" (assignment_expression "local_a8 = iVar15" identifier = identifier) ;) (labeled_statement "LAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;" statement_identifier : (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;)) (if_statement "if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" if (parenthesized_expression "(local_a8 == 0)" ( (binary_expression "local_a8 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" { (expression_statement "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");" (call_expression "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" identifier (argument_list "("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" ( (string_literal ""prev_image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/layer.c"" " string_content ") , number_literal , (string_literal ""OptimizeLayerFrames"" " string_content ") ))) ;) })) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;) })) (labeled_statement "LAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;" statement_identifier : (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;)) (expression_statement "iVar10 = DestroyImage(iVar10);" (assignment_expression "iVar10 = DestroyImage(iVar10)" identifier = (call_expression "DestroyImage(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" identifier = identifier) ;) (if_statement "if (*local_c8 != 3) goto LAB_000fef38;" if (parenthesized_expression "(*local_c8 != 3)" ( (binary_expression "*local_c8 != 3" (pointer_expression "*local_c8" * identifier) != number_literal) )) (goto_statement "goto LAB_000fef38;" goto statement_identifier ;)) (if_statement "if (iVar20 == 0) goto LAB_000fee89;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;)) (labeled_statement "LAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);" statement_identifier : (expression_statement "iVar20 = DestroyImage(iVar15);" (assignment_expression "iVar20 = DestroyImage(iVar15)" identifier = (call_expression "DestroyImage(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;)) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (labeled_statement "LAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;" statement_identifier : (if_statement "if (iVar14 != 1) goto LAB_000fef60;" if (parenthesized_expression "(iVar14 != 1)" ( (binary_expression "iVar14 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000fef60;" goto statement_identifier ;))) (expression_statement "local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));" (assignment_expression "local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c))" identifier = (call_expression "ReferenceImage(*(undefined4 *)(local_d8 + 0x333c))" identifier (argument_list "(*(undefined4 *)(local_d8 + 0x333c))" ( (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" * (cast_expression "(undefined4 *)(local_d8 + 0x333c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x333c)" ( (binary_expression "local_d8 + 0x333c" identifier + number_literal) )))) )))) ;) (if_statement "if (local_a8 != 0) goto LAB_000fea38;" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000fea38;" goto statement_identifier ;)) (goto_statement "goto LAB_000ff84d;" goto statement_identifier ;) }))) (expression_statement "*local_c8 = 8;" (assignment_expression "*local_c8 = 8" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "puVar13[local_cc + 0x40000000] = 1;" (assignment_expression "puVar13[local_cc + 0x40000000] = 1" (subscript_expression "puVar13[local_cc + 0x40000000]" identifier [ (binary_expression "local_cc + 0x40000000" identifier + number_literal) ]) = number_literal) ;) (expression_statement "*puVar21 = puVar12[local_cc * 4 + -4];" (assignment_expression "*puVar21 = puVar12[local_cc * 4 + -4]" (pointer_expression "*puVar21" * identifier) = (subscript_expression "puVar12[local_cc * 4 + -4]" identifier [ (binary_expression "local_cc * 4 + -4" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar21[1] = puVar12[local_cc * 4 + -3];" (assignment_expression "puVar21[1] = puVar12[local_cc * 4 + -3]" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[local_cc * 4 + -3]" identifier [ (binary_expression "local_cc * 4 + -3" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar21[2] = puVar12[local_cc * 4 + -2];" (assignment_expression "puVar21[2] = puVar12[local_cc * 4 + -2]" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = (subscript_expression "puVar12[local_cc * 4 + -2]" identifier [ (binary_expression "local_cc * 4 + -2" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) (expression_statement "puVar21[3] = puVar12[local_cc * 4 + -1];" (assignment_expression "puVar21[3] = puVar12[local_cc * 4 + -1]" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = (subscript_expression "puVar12[local_cc * 4 + -1]" identifier [ (binary_expression "local_cc * 4 + -1" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ])) ;) }) (else_clause "else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" else (compound_statement "{\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" { (expression_statement "iVar15 = FUN_000fa9a0(param_2);" (assignment_expression "iVar15 = FUN_000fa9a0(param_2)" identifier = (call_expression "FUN_000fa9a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar16 = puVar21[2];" (assignment_expression "uVar16 = puVar21[2]" identifier = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (expression_statement "local_c8 = puVar13 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = puVar13 + local_cc + 0x3fffffff" identifier = (binary_expression "puVar13 + local_cc + 0x3fffffff" (binary_expression "puVar13 + local_cc" identifier + identifier) + number_literal)) ;) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (if_statement "if ((int)uVar16 < 0) goto LAB_000fe9b6;" if (parenthesized_expression "((int)uVar16 < 0)" ( (binary_expression "(int)uVar16 < 0" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000fe9b6;" goto statement_identifier ;)) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" identifier = identifier) ;) (if_statement "if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  bVar23 = true;\n                  local_90 = 0;\n                }" { (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" else (compound_statement "{\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" { (expression_statement "local_90 = FUN_000fa9a0(param_2);" (assignment_expression "local_90 = FUN_000fa9a0(param_2)" identifier = (call_expression "FUN_000fa9a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "bVar23 = local_90 == 0;" (assignment_expression "bVar23 = local_90 == 0" identifier = (binary_expression "local_90 == 0" identifier == number_literal)) ;) }))) (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" identifier = (binary_expression "local_cc + 0x3fffffff" identifier + number_literal)) ;) (if_statement "if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }" if (parenthesized_expression "(((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1]))" ( (binary_expression "((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])" (parenthesized_expression "((iVar15 != 0) && (bVar23))" ( (binary_expression "(iVar15 != 0) && (bVar23)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) && (parenthesized_expression "(bVar23)" ( identifier ))) )) || (parenthesized_expression "(local_40 * local_3c < *puVar21 * puVar21[1])" ( (binary_expression "local_40 * local_3c < *puVar21 * puVar21[1]" (binary_expression "local_40 * local_3c" identifier * identifier) < (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" * identifier) * (subscript_expression "puVar21[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }" { (expression_statement "*puVar21 = local_40;" (assignment_expression "*puVar21 = local_40" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_3c;" (assignment_expression "puVar21[1] = local_3c" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = local_38;" (assignment_expression "puVar21[2] = local_38" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_34;" (assignment_expression "puVar21[3] = local_34" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 3;" (assignment_expression "*local_c8 = 3" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "iVar15 = local_90;" (assignment_expression "iVar15 = local_90" identifier = identifier) ;) })) (expression_statement "local_90 = iVar15;" (assignment_expression "local_90 = iVar15" identifier = identifier) ;) (expression_statement "iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);" (assignment_expression "iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier = (call_expression "CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier (argument_list "(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" ( (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" * (cast_expression "(undefined4 *)(local_d8 + 0x333c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x333c)" ( (binary_expression "local_d8 + 0x333c" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }" { (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar10 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar10 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar10 + 0x84)" * (cast_expression "(undefined4 *)(iVar10 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x84)" ( (binary_expression "iVar10 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000fab80(3,param_2);" (call_expression "FUN_000fab80(3,param_2)" identifier (argument_list "(3,param_2)" ( number_literal , identifier ))) ;) (expression_statement "uVar8 = local_24;" (assignment_expression "uVar8 = local_24" identifier = identifier) ;) (expression_statement "uVar7 = local_28;" (assignment_expression "uVar7 = local_28" identifier = identifier) ;) (expression_statement "uVar22 = local_2c;" (assignment_expression "uVar22 = local_2c" identifier = identifier) ;) (expression_statement "uVar16 = local_30;" (assignment_expression "uVar16 = local_30" identifier = identifier) ;) (expression_statement "local_94 = local_30;" (assignment_expression "local_94 = local_30" identifier = identifier) ;) (expression_statement "local_98 = local_2c;" (assignment_expression "local_98 = local_2c" identifier = identifier) ;) (if_statement "if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(-1 < (int)local_28)" ( (binary_expression "-1 < (int)local_28" number_literal < (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x294) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x294) == 0" (pointer_expression "*(int *)(iVar10 + 0x294)" * (cast_expression "(int *)(iVar10 + 0x294)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x294)" ( (binary_expression "iVar10 + 0x294" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }" { (expression_statement "SetImageAlphaChannel(iVar10,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar10,0xb,param_2)" identifier (argument_list "(iVar10,0xb,param_2)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }" if (parenthesized_expression "(0 < (int)uVar22)" ( (binary_expression "0 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }" { (expression_statement "local_d4 = uVar8;" (assignment_expression "local_d4 = uVar8" identifier = identifier) ;) (while_statement "while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }" while (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0)" ( (comma_expression "iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2)" identifier (argument_list "(iVar10,uVar7,local_d4,uVar16,1,param_2)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }" { (if_statement "if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }" if (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }" { (expression_statement "iVar15 = *(int *)(iVar10 + 0x298);" (assignment_expression "iVar15 = *(int *)(iVar10 + 0x298)" identifier = (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }" if (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar10 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar10 + 0x2a8)" * (cast_expression "(int *)(iVar10 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2a8)" ( (binary_expression "iVar10 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }" { (expression_statement "iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar10 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar10 + 0x2a8)" * (cast_expression "(int *)(iVar10 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2a8)" ( (binary_expression "iVar10 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);" do (compound_statement "{\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          }" { (expression_statement "*(undefined8 *)(iVar20 + iVar14 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar14 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar14 * 8)" * (cast_expression "(undefined8 *)(iVar20 + iVar14 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar14 * 8)" ( (binary_expression "iVar20 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + iVar15 * 8;" (assignment_expression "iVar20 = iVar20 + iVar15 * 8" identifier = (binary_expression "iVar20 + iVar15 * 8" identifier + (binary_expression "iVar15 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(uVar18 != uVar16)" ( (binary_expression "uVar18 != uVar16" identifier != identifier) )) ;) })) })) (expression_statement "iVar20 = SyncAuthenticPixels(iVar10,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar10,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar10,param_2)" identifier (argument_list "(iVar10,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;" if (parenthesized_expression "((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))" ( (binary_expression "(iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4)" ( (comma_expression "local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "uVar22 + uVar8 == local_d4" (binary_expression "uVar22 + uVar8" identifier + identifier) == identifier)) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (if_statement "if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" if (parenthesized_expression "((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22))" ( (binary_expression "(local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)" (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) && (parenthesized_expression "(*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)" ( (binary_expression "*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22" (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" * identifier) * (subscript_expression "puVar21[1]" identifier [ number_literal ])) <= (binary_expression "local_5c * local_58 + uVar16 * uVar22" (binary_expression "local_5c * local_58" identifier * identifier) + (binary_expression "uVar16 * uVar22" identifier * identifier))) ))) )) (compound_statement "{\n                  local_98 = 0;\n                  local_94 = 0;\n                }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" else (compound_statement "{\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" { (expression_statement "*puVar21 = local_5c;" (assignment_expression "*puVar21 = local_5c" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_58;" (assignment_expression "puVar21[1] = local_58" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = local_54;" (assignment_expression "puVar21[2] = local_54" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_50;" (assignment_expression "puVar21[3] = local_50" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" * identifier) = number_literal) ;) }))) (expression_statement "iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);" (assignment_expression "iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier = (call_expression "CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" identifier (argument_list "(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" ( (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" * (cast_expression "(undefined4 *)(local_d8 + 0x333c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x333c)" ( (binary_expression "local_d8 + 0x333c" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }" { (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "DestroyImage(iVar10);" (call_expression "DestroyImage(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar15 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar15 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar15 + 0x84)" * (cast_expression "(undefined4 *)(iVar15 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x84)" ( (binary_expression "iVar15 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1 = puVar12 + local_cc * 4 + -4;" (assignment_expression "puVar1 = puVar12 + local_cc * 4 + -4" identifier = (binary_expression "puVar12 + local_cc * 4 + -4" (binary_expression "puVar12 + local_cc * 4" identifier + (binary_expression "local_cc * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "uVar16 = puVar1[1];" (assignment_expression "uVar16 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar1;" (assignment_expression "uVar22 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_b8 = puVar1[2];" (assignment_expression "local_b8 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_80 = puVar1[3];" (assignment_expression "local_80 = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(-1 < (int)local_b8)" ( (binary_expression "-1 < (int)local_b8" number_literal < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }" if (parenthesized_expression "(*(int *)(iVar15 + 0x294) == 0)" ( (binary_expression "*(int *)(iVar15 + 0x294) == 0" (pointer_expression "*(int *)(iVar15 + 0x294)" * (cast_expression "(int *)(iVar15 + 0x294)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x294)" ( (binary_expression "iVar15 + 0x294" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }" { (expression_statement "SetImageAlphaChannel(iVar15,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar15,0xb,param_2)" identifier (argument_list "(iVar15,0xb,param_2)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }" if (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }" { (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" identifier = identifier) ;) (while_statement "while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }" while (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0)" ( (comma_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier (argument_list "(iVar15,local_b8,local_d4,uVar22,1,param_2)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }" { (if_statement "if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }" if (parenthesized_expression "(0 < (int)uVar22)" ( (binary_expression "0 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }" { (expression_statement "iVar14 = *(int *)(iVar15 + 0x298);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x298)" identifier = (pointer_expression "*(int *)(iVar15 + 0x298)" * (cast_expression "(int *)(iVar15 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x298)" ( (binary_expression "iVar15 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }" if (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }" { (expression_statement "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);" do (compound_statement "{\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          }" { (expression_statement "*(undefined8 *)(iVar20 + iVar2 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar2 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar2 * 8)" * (cast_expression "(undefined8 *)(iVar20 + iVar2 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar2 * 8)" ( (binary_expression "iVar20 + iVar2 * 8" identifier + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + iVar14 * 8;" (assignment_expression "iVar20 = iVar20 + iVar14 * 8" identifier = (binary_expression "iVar20 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(uVar18 != uVar22)" ( (binary_expression "uVar18 != uVar22" identifier != identifier) )) ;) })) })) (expression_statement "iVar20 = SyncAuthenticPixels(iVar15,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar15,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar15,param_2)" identifier (argument_list "(iVar15,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;" if (parenthesized_expression "((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))" ( (binary_expression "(iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80)" ( (comma_expression "local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "local_d4 == uVar16 + local_80" identifier == (binary_expression "uVar16 + local_80" identifier + identifier))) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" identifier = identifier) ;) (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" identifier = identifier) ;) (if_statement "if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }" if (parenthesized_expression "((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0))" ( (binary_expression "(-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)" (parenthesized_expression "(-1 < (int)local_54)" ( (binary_expression "-1 < (int)local_54" number_literal < (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)" ( (comma_expression "iVar20 = FUN_000fa9a0(param_2), iVar20 != 0" (assignment_expression "iVar20 = FUN_000fa9a0(param_2)" identifier = (call_expression "FUN_000fa9a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }" { (expression_statement "FUN_000fab80(3,param_2);" (call_expression "FUN_000fab80(3,param_2)" identifier (argument_list "(3,param_2)" ( number_literal , identifier ))) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (if_statement "if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" if (parenthesized_expression "((int)local_b8 < 0)" ( (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }" { (expression_statement "local_8c = local_58;" (assignment_expression "local_8c = local_58" identifier = identifier) ;) (expression_statement "uVar22 = local_5c;" (assignment_expression "uVar22 = local_5c" identifier = identifier) ;) (expression_statement "local_b8 = local_54;" (assignment_expression "local_b8 = local_54" identifier = identifier) ;) (expression_statement "local_80 = local_50;" (assignment_expression "local_80 = local_50" identifier = identifier) ;) }) (else_clause "else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" { (if_statement "if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" if (parenthesized_expression "((int)local_54 < (int)local_b8)" ( (binary_expression "(int)local_54 < (int)local_b8" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }" { (expression_statement "iVar20 = local_b8 - local_54;" (assignment_expression "iVar20 = local_b8 - local_54" identifier = (binary_expression "local_b8 - local_54" identifier - identifier)) ;) (expression_statement "local_b8 = local_54;" (assignment_expression "local_b8 = local_54" identifier = identifier) ;) (expression_statement "uVar18 = iVar20 + uVar22;" (assignment_expression "uVar18 = iVar20 + uVar22" identifier = (binary_expression "iVar20 + uVar22" identifier + identifier)) ;) (expression_statement "uVar22 = local_5c;" (assignment_expression "uVar22 = local_5c" identifier = identifier) ;) (if_statement "if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }" if (parenthesized_expression "(local_5c <= uVar18)" ( (binary_expression "local_5c <= uVar18" identifier <= identifier) )) (compound_statement "{\n                        uVar22 = uVar18;\n                      }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) })) }) (else_clause "else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" else (compound_statement "{\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" { (expression_statement "local_40 = (local_54 - local_b8) + local_5c;" (assignment_expression "local_40 = (local_54 - local_b8) + local_5c" identifier = (binary_expression "(local_54 - local_b8) + local_5c" (parenthesized_expression "(local_54 - local_b8)" ( (binary_expression "local_54 - local_b8" identifier - identifier) )) + identifier)) ;) (if_statement "if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }" if (parenthesized_expression "(uVar22 < local_40)" ( (binary_expression "uVar22 < local_40" identifier < identifier) )) (compound_statement "{\n                        uVar22 = local_40;\n                      }" { (expression_statement "uVar22 = local_40;" (assignment_expression "uVar22 = local_40" identifier = identifier) ;) })) }))) (if_statement "if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" if (parenthesized_expression "((int)local_50 < (int)local_80)" ( (binary_expression "(int)local_50 < (int)local_80" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" { (expression_statement "uVar16 = (local_80 - local_50) + uVar16;" (assignment_expression "uVar16 = (local_80 - local_50) + uVar16" identifier = (binary_expression "(local_80 - local_50) + uVar16" (parenthesized_expression "(local_80 - local_50)" ( (binary_expression "local_80 - local_50" identifier - identifier) )) + identifier)) ;) (expression_statement "local_80 = local_50;" (assignment_expression "local_80 = local_50" identifier = identifier) ;) (expression_statement "local_8c = local_58;" (assignment_expression "local_8c = local_58" identifier = identifier) ;) (if_statement "if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }" if (parenthesized_expression "(local_58 <= uVar16)" ( (binary_expression "local_58 <= uVar16" identifier <= identifier) )) (compound_statement "{\n                        local_8c = uVar16;\n                      }" { (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" identifier = identifier) ;) })) }) (else_clause "else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" else (compound_statement "{\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" { (expression_statement "local_3c = (local_50 - local_80) + local_58;" (assignment_expression "local_3c = (local_50 - local_80) + local_58" identifier = (binary_expression "(local_50 - local_80) + local_58" (parenthesized_expression "(local_50 - local_80)" ( (binary_expression "local_50 - local_80" identifier - identifier) )) + identifier)) ;) (expression_statement "local_8c = local_3c;" (assignment_expression "local_8c = local_3c" identifier = identifier) ;) (if_statement "if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }" if (parenthesized_expression "(local_3c <= uVar16)" ( (binary_expression "local_3c <= uVar16" identifier <= identifier) )) (compound_statement "{\n                        local_8c = uVar16;\n                      }" { (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" identifier = identifier) ;) })) }))) }))) (if_statement "if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" if (parenthesized_expression "(-1 < (int)local_b8)" ( (binary_expression "-1 < (int)local_b8" number_literal < (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" { (if_statement "if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }" if (parenthesized_expression "(*(int *)(iVar15 + 0x294) == 0)" ( (binary_expression "*(int *)(iVar15 + 0x294) == 0" (pointer_expression "*(int *)(iVar15 + 0x294)" * (cast_expression "(int *)(iVar15 + 0x294)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x294)" ( (binary_expression "iVar15 + 0x294" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }" { (expression_statement "SetImageAlphaChannel(iVar15,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar15,0xb,param_2)" identifier (argument_list "(iVar15,0xb,param_2)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" if (parenthesized_expression "(0 < (int)local_8c)" ( (binary_expression "0 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" { (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" identifier = identifier) ;) (while_statement "while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" while (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0)" ( (comma_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" identifier (argument_list "(iVar15,local_b8,local_d4,uVar22,1,param_2)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" { (if_statement "if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }" if (parenthesized_expression "(0 < (int)uVar22)" ( (binary_expression "0 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }" { (expression_statement "iVar14 = *(int *)(iVar15 + 0x298);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x298)" identifier = (pointer_expression "*(int *)(iVar15 + 0x298)" * (cast_expression "(int *)(iVar15 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x298)" ( (binary_expression "iVar15 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }" if (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }" { (expression_statement "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x2a8)" * (cast_expression "(int *)(iVar15 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2a8)" ( (binary_expression "iVar15 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);" do (compound_statement "{\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            }" { (expression_statement "*(undefined8 *)(iVar20 + iVar2 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar2 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar2 * 8)" * (cast_expression "(undefined8 *)(iVar20 + iVar2 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar2 * 8)" ( (binary_expression "iVar20 + iVar2 * 8" identifier + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + iVar14 * 8;" (assignment_expression "iVar20 = iVar20 + iVar14 * 8" identifier = (binary_expression "iVar20 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(uVar22 != uVar16)" ( (binary_expression "uVar22 != uVar16" identifier != identifier) )) ;) })) })) (expression_statement "iVar20 = SyncAuthenticPixels(iVar15,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar15,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar15,param_2)" identifier (argument_list "(iVar15,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;" if (parenthesized_expression "((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4))" ( (binary_expression "(iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" ( (comma_expression "local_d4 = local_d4 + 1, local_8c + local_80 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) , (binary_expression "local_8c + local_80 == local_d4" (binary_expression "local_8c + local_80" identifier + identifier) == identifier)) ))) )) (break_statement "break;" break ;)) })) })) })) (expression_statement "FUN_000fab80(4,param_2);" (call_expression "FUN_000fab80(4,param_2)" identifier (argument_list "(4,param_2)" ( number_literal , identifier ))) ;) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" identifier = identifier) ;) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" identifier = identifier) ;) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" identifier = identifier) ;) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) })) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" identifier = (pointer_expression "*local_c8" * identifier)) ;) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) (if_statement "if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" if (parenthesized_expression "(local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1])" ( (binary_expression "local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]" (binary_expression "local_3c * local_40 + local_8c * uVar22" (binary_expression "local_3c * local_40" identifier * identifier) + (binary_expression "local_8c * uVar22" identifier * identifier)) < (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]" (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1]" (binary_expression "local_94 * local_98" identifier * identifier) + (binary_expression "*puVar1 * puVar1[1]" (pointer_expression "*puVar1" * identifier) * (subscript_expression "puVar1[1]" identifier [ number_literal ]))) + (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" * identifier) * (subscript_expression "puVar21[1]" identifier [ number_literal ])))) )) (compound_statement "{\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" { (expression_statement "*puVar1 = uVar22;" (assignment_expression "*puVar1 = uVar22" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_8c;" (assignment_expression "puVar1[1] = local_8c" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_b8;" (assignment_expression "puVar1[2] = local_b8" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_80;" (assignment_expression "puVar1[3] = local_80" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[1] = local_3c;" (assignment_expression "puVar21[1] = local_3c" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar21 = local_40;" (assignment_expression "*puVar21 = local_40" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[2] = local_38;" (assignment_expression "puVar21[2] = local_38" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = local_34;" (assignment_expression "puVar21[3] = local_34" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" if (parenthesized_expression "(iVar14 != 9)" ( (binary_expression "iVar14 != 9" identifier != number_literal) )) (compound_statement "{\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" { (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;) })) (expression_statement "iVar10 = DestroyImage(iVar10);" (assignment_expression "iVar10 = DestroyImage(iVar10)" identifier = (call_expression "DestroyImage(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (if_statement "if (iVar10 != 0) goto LAB_000fe9cd;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;)) (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" identifier = (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier )))) ;) (if_statement "if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }" if (parenthesized_expression "(*local_c8 == 2)" ( (binary_expression "*local_c8 == 2" (pointer_expression "*local_c8" * identifier) == number_literal) )) (compound_statement "{\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = iVar15;" (assignment_expression "local_a8 = iVar15" identifier = identifier) ;) (goto_statement "goto LAB_000fee89;" goto statement_identifier ;) })) (goto_statement "goto LAB_000fe9f5;" goto statement_identifier ;) })) (if_statement "if (iVar14 != 9) goto LAB_000fe9cd;" if (parenthesized_expression "(iVar14 != 9)" ( (binary_expression "iVar14 != 9" identifier != number_literal) )) (goto_statement "goto LAB_000fe9cd;" goto statement_identifier ;)) (expression_statement "iVar20 = DestroyImage(iVar15);" (assignment_expression "iVar20 = DestroyImage(iVar15)" identifier = (call_expression "DestroyImage(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "puVar12[local_cc * 4 + 4] = *puVar21;" (assignment_expression "puVar12[local_cc * 4 + 4] = *puVar21" (subscript_expression "puVar12[local_cc * 4 + 4]" identifier [ (binary_expression "local_cc * 4 + 4" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar12[local_cc * 4 + 5] = puVar21[1];" (assignment_expression "puVar12[local_cc * 4 + 5] = puVar21[1]" (subscript_expression "puVar12[local_cc * 4 + 5]" identifier [ (binary_expression "local_cc * 4 + 5" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[local_cc * 4 + 6] = puVar21[2];" (assignment_expression "puVar12[local_cc * 4 + 6] = puVar21[2]" (subscript_expression "puVar12[local_cc * 4 + 6]" identifier [ (binary_expression "local_cc * 4 + 6" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (expression_statement "puVar12[local_cc * 4 + 7] = puVar21[3];" (assignment_expression "puVar12[local_cc * 4 + 7] = puVar21[3]" (subscript_expression "puVar12[local_cc * 4 + 7]" identifier [ (binary_expression "local_cc * 4 + 7" (binary_expression "local_cc * 4" identifier * number_literal) + number_literal) ]) = (subscript_expression "puVar21[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar21 = local_94;" (assignment_expression "*puVar21 = local_94" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = local_98;" (assignment_expression "puVar21[1] = local_98" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = uVar7;" (assignment_expression "puVar21[2] = uVar7" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = uVar8;" (assignment_expression "puVar21[3] = uVar8" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" * identifier) = number_literal) ;) (expression_statement "puVar13[local_cc + 0x40000000] = 2;" (assignment_expression "puVar13[local_cc + 0x40000000] = 2" (subscript_expression "puVar13[local_cc + 0x40000000]" identifier [ (binary_expression "local_cc + 0x40000000" identifier + number_literal) ]) = number_literal) ;) (expression_statement "local_a0 = local_cc + 0x40000000;" (assignment_expression "local_a0 = local_cc + 0x40000000" identifier = (binary_expression "local_cc + 0x40000000" identifier + number_literal)) ;) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" identifier = (binary_expression "local_cc + 1" identifier + number_literal)) ;) (expression_statement "local_a8 = iVar10;" (assignment_expression "local_a8 = iVar10" identifier = identifier) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000fee89:\n                local_c8 = puVar13 + local_a0;" statement_identifier : (expression_statement "local_c8 = puVar13 + local_a0;" (assignment_expression "local_c8 = puVar13 + local_a0" identifier = (binary_expression "puVar13 + local_a0" identifier + identifier)) ;)) (labeled_statement "LAB_000fea38:\n                puVar13[local_cc] = *local_c8;" statement_identifier : (expression_statement "puVar13[local_cc] = *local_c8;" (assignment_expression "puVar13[local_cc] = *local_c8" (subscript_expression "puVar13[local_cc]" identifier [ identifier ]) = (pointer_expression "*local_c8" * identifier)) ;)) }))) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" identifier = (binary_expression "local_cc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = GetNextImageInList(local_d8);" (assignment_expression "local_d8 = GetNextImageInList(local_d8)" identifier = (call_expression "GetNextImageInList(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;) }) while (parenthesized_expression "(local_d8 != 0)" ( (binary_expression "local_d8 != 0" identifier != number_literal) )) ;) })) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" identifier (argument_list "(local_a8)" ( identifier ))) ;) (expression_statement "uVar24 = AcquireExceptionInfo();" (assignment_expression "uVar24 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = GetFirstImageInList(param_1);" (assignment_expression "iVar10 = GetFirstImageInList(param_1)" identifier = (call_expression "GetFirstImageInList(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_44 = NewImageList();" (assignment_expression "local_44 = NewImageList()" identifier = (call_expression "NewImageList()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (labeled_statement "joined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" statement_identifier : (if_statement "if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" { (do_statement "do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );" do (compound_statement "{\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            }" { (expression_statement "iVar20 = CloneImage(iVar10,0,0,1,param_2);" (assignment_expression "iVar20 = CloneImage(iVar10,0,0,1,param_2)" identifier = (call_expression "CloneImage(iVar10,0,0,1,param_2)" identifier (argument_list "(iVar10,0,0,1,param_2)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }" { (labeled_statement "LAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);" statement_identifier : (expression_statement "DestroyExceptionInfo(uVar24);" (call_expression "DestroyExceptionInfo(uVar24)" identifier (argument_list "(uVar24)" ( identifier ))) ;)) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "DestroyImageList(local_44);" (call_expression "DestroyImageList(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar20 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar20 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar20 + 0x84)" * (cast_expression "(undefined4 *)(iVar20 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x84)" ( (binary_expression "iVar20 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" identifier = identifier) ;) (expression_statement "piVar17 = puVar13 + local_d8;" (assignment_expression "piVar17 = puVar13 + local_d8" identifier = (binary_expression "puVar13 + local_d8" identifier + identifier)) ;) (if_statement "if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }" if (parenthesized_expression "(*piVar17 == 8)" ( (binary_expression "*piVar17 == 8" (pointer_expression "*piVar17" * identifier) == number_literal) )) (compound_statement "{\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "piVar9 = puVar13 + local_d8 + 1;" (assignment_expression "piVar9 = puVar13 + local_d8 + 1" identifier = (binary_expression "puVar13 + local_d8 + 1" (binary_expression "puVar13 + local_d8" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);" do (compound_statement "{\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                }" { (expression_statement "piVar17 = piVar9;" (assignment_expression "piVar17 = piVar9" identifier = identifier) ;) (expression_statement "dVar4 = (double)*(int *)(iVar10 + 0x250);" (assignment_expression "dVar4 = (double)*(int *)(iVar10 + 0x250)" identifier = (cast_expression "(double)*(int *)(iVar10 + 0x250)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar10 + 0x250)" * (cast_expression "(int *)(iVar10 + 0x250)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x250)" ( (binary_expression "iVar10 + 0x250" identifier + number_literal) )))))) ;) (expression_statement "dVar3 = dVar6;" (assignment_expression "dVar3 = dVar6" identifier = identifier) ;) (expression_statement "dVar5 = dVar4;" (assignment_expression "dVar5 = dVar4" identifier = identifier) ;) (if_statement "if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" if (parenthesized_expression "(dVar4 < 0.0)" ( (binary_expression "dVar4 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" { (expression_statement "dVar3 = DAT_002df8e0;" (assignment_expression "dVar3 = DAT_002df8e0" identifier = identifier) ;) (expression_statement "dVar5 = -dVar4;" (assignment_expression "dVar5 = -dVar4" identifier = (unary_expression "-dVar4" - identifier)) ;) })) (if_statement "if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" if (parenthesized_expression "(DAT_002df2d0 <= dVar5)" ( (binary_expression "DAT_002df2d0 <= dVar5" identifier <= identifier) )) (compound_statement "{\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" { (expression_statement "dVar3 = (double)DAT_002df8b4 / dVar4;" (assignment_expression "dVar3 = (double)DAT_002df8b4 / dVar4" identifier = (binary_expression "(double)DAT_002df8b4 / dVar4" (cast_expression "(double)DAT_002df8b4" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) })) (expression_statement "local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));" (assignment_expression "local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" identifier = (cast_expression "(longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" identifier (argument_list "(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" ( (binary_expression "dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000)" identifier * (cast_expression "(double)(uint)(*(int *)(iVar10 + 0x248) * 1000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(uint)(*(int *)(iVar10 + 0x248) * 1000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar10 + 0x248) * 1000)" ( (binary_expression "*(int *)(iVar10 + 0x248) * 1000" (pointer_expression "*(int *)(iVar10 + 0x248)" * (cast_expression "(int *)(iVar10 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x248)" ( (binary_expression "iVar10 + 0x248" identifier + number_literal) )))) * number_literal) ))))) ))))) ;) (expression_statement "iVar15 = iVar15 + (int)local_74;" (assignment_expression "iVar15 = iVar15 + (int)local_74" identifier = (binary_expression "iVar15 + (int)local_74" identifier + (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = GetNextImageInList(iVar10);" (assignment_expression "iVar10 = GetNextImageInList(iVar10)" identifier = (call_expression "GetNextImageInList(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" identifier = (binary_expression "local_d8 + 1" identifier + number_literal)) ;) (expression_statement "piVar9 = piVar17 + 1;" (assignment_expression "piVar9 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar17 == 8)" ( (binary_expression "*piVar17 == 8" (pointer_expression "*piVar17" * identifier) == number_literal) )) ;) (expression_statement "iVar14 = *(int *)(iVar10 + 0x248);" (assignment_expression "iVar14 = *(int *)(iVar10 + 0x248)" identifier = (pointer_expression "*(int *)(iVar10 + 0x248)" * (cast_expression "(int *)(iVar10 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x248)" ( (binary_expression "iVar10 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar3 = (double)*(int *)(iVar10 + 0x250);" (assignment_expression "dVar3 = (double)*(int *)(iVar10 + 0x250)" identifier = (cast_expression "(double)*(int *)(iVar10 + 0x250)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar10 + 0x250)" * (cast_expression "(int *)(iVar10 + 0x250)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x250)" ( (binary_expression "iVar10 + 0x250" identifier + number_literal) )))))) ;) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" identifier = identifier) ;) (expression_statement "dVar4 = dVar3;" (assignment_expression "dVar4 = dVar3" identifier = identifier) ;) (if_statement "if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" if (parenthesized_expression "(dVar3 < 0.0)" ( (binary_expression "dVar3 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" { (expression_statement "dVar6 = DAT_002df8e0;" (assignment_expression "dVar6 = DAT_002df8e0" identifier = identifier) ;) (expression_statement "dVar4 = -dVar3;" (assignment_expression "dVar4 = -dVar3" identifier = (unary_expression "-dVar3" - identifier)) ;) })) (if_statement "if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" if (parenthesized_expression "(DAT_002df2d0 <= dVar4)" ( (binary_expression "DAT_002df2d0 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" { (expression_statement "dVar6 = (double)DAT_002df8b4 / dVar3;" (assignment_expression "dVar6 = (double)DAT_002df8b4 / dVar3" identifier = (binary_expression "(double)DAT_002df8b4 / dVar3" (cast_expression "(double)DAT_002df8b4" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) })) (expression_statement "*(undefined4 *)(iVar20 + 0x250) = 100;" (assignment_expression "*(undefined4 *)(iVar20 + 0x250) = 100" (pointer_expression "*(undefined4 *)(iVar20 + 0x250)" * (cast_expression "(undefined4 *)(iVar20 + 0x250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x250)" ( (binary_expression "iVar20 + 0x250" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));" (assignment_expression "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" (field_expression "local_74._0_4_" identifier . field_identifier) = (cast_expression "(int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" identifier (argument_list "(dVar6 * (double)(uint)(iVar14 * 1000))" ( (binary_expression "dVar6 * (double)(uint)(iVar14 * 1000)" identifier * (cast_expression "(double)(uint)(iVar14 * 1000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(uint)(iVar14 * 1000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 * 1000)" ( (binary_expression "iVar14 * 1000" identifier * number_literal) ))))) )))))) ;) (expression_statement "*(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;" (assignment_expression "*(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000" (pointer_expression "*(uint *)(iVar20 + 0x248)" * (cast_expression "(uint *)(iVar20 + 0x248)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x248)" ( (binary_expression "iVar20 + 0x248" identifier + number_literal) )))) = (binary_expression "(uint)(((int)local_74 + iVar15) * 100) / 1000" (call_expression "(uint)(((int)local_74 + iVar15) * 100)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)local_74 + iVar15) * 100)" ( (binary_expression "((int)local_74 + iVar15) * 100" (parenthesized_expression "((int)local_74 + iVar15)" ( (binary_expression "(int)local_74 + iVar15" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )) * number_literal) ))) / number_literal)) ;) })) (expression_statement "iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);" (assignment_expression "iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24)" identifier = (call_expression "CropImage(iVar20,puVar12 + local_d8 * 4,uVar24)" identifier (argument_list "(iVar20,puVar12 + local_d8 * 4,uVar24)" ( identifier , (binary_expression "puVar12 + local_d8 * 4" identifier + (binary_expression "local_d8 * 4" identifier * number_literal)) , identifier )))) ;) (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" identifier (argument_list "(iVar20)" ( identifier ))) ;) (if_statement "if (iVar15 == 0) goto LAB_000ff7a7;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ff7a7;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar15 + 0x240) = *piVar17;" (assignment_expression "*(int *)(iVar15 + 0x240) = *piVar17" (pointer_expression "*(int *)(iVar15 + 0x240)" * (cast_expression "(int *)(iVar15 + 0x240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x240)" ( (binary_expression "iVar15 + 0x240" identifier + number_literal) )))) = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if (*piVar17 != 9) goto code_r0x000ff534;" if (parenthesized_expression "(*piVar17 != 9)" ( (binary_expression "*piVar17 != 9" (pointer_expression "*piVar17" * identifier) != number_literal) )) (goto_statement "goto code_r0x000ff534;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar15 + 0x248) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x248) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x248)" * (cast_expression "(undefined4 *)(iVar15 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x248)" ( (binary_expression "iVar15 + 0x248" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar15 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar15 + 0x240)" * (cast_expression "(undefined4 *)(iVar15 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x240)" ( (binary_expression "iVar15 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "AppendImageToList(&local_44,iVar15);" (call_expression "AppendImageToList(&local_44,iVar15)" identifier (argument_list "(&local_44,iVar15)" ( (pointer_expression "&local_44" & identifier) , identifier ))) ;) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" identifier = (binary_expression "local_d8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DestroyExceptionInfo(uVar24);" (call_expression "DestroyExceptionInfo(uVar24)" identifier (argument_list "(uVar24)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "uVar19 = GetFirstImageInList(local_44);" (assignment_expression "uVar19 = GetFirstImageInList(local_44)" identifier = (call_expression "GetFirstImageInList(local_44)" identifier (argument_list "(local_44)" ( identifier )))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (labeled_statement "LAB_000ff84d:\n        uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (goto_statement "goto LAB_000fe7b4;" goto statement_identifier ;) })) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "pcVar26 = "MemoryAllocationFailed";" (assignment_expression "pcVar26 = "MemoryAllocationFailed"" identifier = (string_literal ""MemoryAllocationFailed"" " string_content ")) ;) (expression_statement "uVar25 = 400;" (assignment_expression "uVar25 = 400" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3f4;" (assignment_expression "uVar24 = 0x3f4" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" else (compound_statement "{\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" { (expression_statement "iVar20 = *(int *)(iVar10 + 0x18);" (assignment_expression "iVar20 = *(int *)(iVar10 + 0x18)" identifier = (pointer_expression "*(int *)(iVar10 + 0x18)" * (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" if (parenthesized_expression "((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c)))" ( (binary_expression "(iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))" (parenthesized_expression "(iVar20 == *(int *)(param_1 + 0x18))" ( (binary_expression "iVar20 == *(int *)(param_1 + 0x18)" identifier == (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))" ( (comma_expression "iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c)" (assignment_expression "iVar15 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) , (binary_expression "iVar15 == *(int *)(iVar10 + 0x1c)" identifier == (pointer_expression "*(int *)(iVar10 + 0x1c)" * (cast_expression "(int *)(iVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x1c)" ( (binary_expression "iVar10 + 0x1c" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }" { (if_statement "if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)))))" ( (binary_expression "(*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))" (parenthesized_expression "(*(int *)(iVar10 + 0x208) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x208) == 0" (pointer_expression "*(int *)(iVar10 + 0x208)" * (cast_expression "(int *)(iVar10 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x208)" ( (binary_expression "iVar10 + 0x208" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))" ( (parenthesized_expression "(*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)))" ( (binary_expression "*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))" (binary_expression "*(int *)(iVar10 + 0x20c) == 0" (pointer_expression "*(int *)(iVar10 + 0x20c)" * (cast_expression "(int *)(iVar10 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20c)" ( (binary_expression "iVar10 + 0x20c" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))" ( (comma_expression "iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)" (assignment_expression "iVar14 = *(int *)(param_1 + 0x200)" identifier = (pointer_expression "*(int *)(param_1 + 0x200)" * (cast_expression "(int *)(param_1 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) ))))) , (binary_expression "iVar14 == *(int *)(iVar10 + 0x200)" identifier == (pointer_expression "*(int *)(iVar10 + 0x200)" * (cast_expression "(int *)(iVar10 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x200)" ( (binary_expression "iVar10 + 0x200" identifier + number_literal) )))))) ))) )) ))) )) (compound_statement "{\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x204);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x204)" identifier = (pointer_expression "*(int *)(param_1 + 0x204)" * (cast_expression "(int *)(param_1 + 0x204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x204)" ( (binary_expression "param_1 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) (while_statement "while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }" while (parenthesized_expression "(*(int *)(iVar11 + 0x204) == iVar2)" ( (binary_expression "*(int *)(iVar11 + 0x204) == iVar2" (pointer_expression "*(int *)(iVar11 + 0x204)" * (cast_expression "(int *)(iVar11 + 0x204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x204)" ( (binary_expression "iVar11 + 0x204" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }" { (expression_statement "iVar11 = GetNextImageInList(iVar11);" (assignment_expression "iVar11 = GetNextImageInList(iVar11)" identifier = (call_expression "GetNextImageInList(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) goto LAB_000fe844;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000fe844;" goto statement_identifier ;)) (if_statement "if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;" if (parenthesized_expression "((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))" ( (binary_expression "(*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15)" (parenthesized_expression "(*(int *)(iVar11 + 0x18) != iVar20)" ( (binary_expression "*(int *)(iVar11 + 0x18) != iVar20" (pointer_expression "*(int *)(iVar11 + 0x18)" * (cast_expression "(int *)(iVar11 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) != identifier) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x1c) != iVar15)" ( (binary_expression "*(int *)(iVar11 + 0x1c) != iVar15" (pointer_expression "*(int *)(iVar11 + 0x1c)" * (cast_expression "(int *)(iVar11 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) != identifier) ))) )) (goto_statement "goto LAB_000fe818;" goto statement_identifier ;)) (if_statement "if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;" if (parenthesized_expression "(((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14))" ( (binary_expression "((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)" (parenthesized_expression "((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0))" ( (binary_expression "(*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)" (parenthesized_expression "(*(int *)(iVar11 + 0x208) != 0)" ( (binary_expression "*(int *)(iVar11 + 0x208) != 0" (pointer_expression "*(int *)(iVar11 + 0x208)" * (cast_expression "(int *)(iVar11 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x208)" ( (binary_expression "iVar11 + 0x208" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x20c) != 0)" ( (binary_expression "*(int *)(iVar11 + 0x20c) != 0" (pointer_expression "*(int *)(iVar11 + 0x20c)" * (cast_expression "(int *)(iVar11 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20c)" ( (binary_expression "iVar11 + 0x20c" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x200) != iVar14)" ( (binary_expression "*(int *)(iVar11 + 0x200) != iVar14" (pointer_expression "*(int *)(iVar11 + 0x200)" * (cast_expression "(int *)(iVar11 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x200)" ( (binary_expression "iVar11 + 0x200" identifier + number_literal) )))) != identifier) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "pcVar26 = "ImagePagesAreNotCoalesced";" (assignment_expression "pcVar26 = "ImagePagesAreNotCoalesced"" identifier = (string_literal ""ImagePagesAreNotCoalesced"" " string_content ")) ;) (expression_statement "uVar25 = 0x19a;" (assignment_expression "uVar25 = 0x19a" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3e3;" (assignment_expression "uVar24 = 0x3e3" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" else (compound_statement "{\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" { (labeled_statement "LAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";" statement_identifier : (expression_statement "pcVar26 = "ImagesAreNotTheSameSize";" (assignment_expression "pcVar26 = "ImagesAreNotTheSameSize"" identifier = (string_literal ""ImagesAreNotTheSameSize"" " string_content ")) ;)) (expression_statement "uVar25 = 0x19a;" (assignment_expression "uVar25 = 0x19a" identifier = number_literal) ;) (expression_statement "uVar24 = 0x3de;" (assignment_expression "uVar24 = 0x3de" identifier = number_literal) ;) }))) }))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);" (call_expression "ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318)" identifier (argument_list "(param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/layer.c"" " string_content ") , (string_literal ""OptimizeLayerFrames"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) (labeled_statement "LAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\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    return uVar19;\n  }" { (return_statement "return uVar19;" return identifier ;) }))) (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);" statement_identifier : (expression_statement "iVar10 = GetNextImageInList(iVar10);" (assignment_expression "iVar10 = GetNextImageInList(iVar10)" identifier = (call_expression "GetNextImageInList(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;)) (expression_statement "AppendImageToList(&local_44,iVar15);" (call_expression "AppendImageToList(&local_44,iVar15)" identifier (argument_list "(&local_44,iVar15)" ( (pointer_expression "&local_44" & identifier) , identifier ))) ;) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" identifier = (binary_expression "local_d8 + 1" identifier + number_literal)) ;) (goto_statement "goto joined_r0x000ff4a8;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( IDENT ))) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) < (binary_expression (pointer_expression * IDENT) * (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (binary_expression IDENT + IDENT) == IDENT)) ))) )) (break_statement break ;)) })) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) * (subscript_expression IDENT [ LIT ])) <= (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT == (binary_expression IDENT + IDENT))) ))) )) (break_statement break ;)) })) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (binary_expression IDENT + IDENT) == IDENT)) ))) )) (break_statement break ;)) })) })) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) < (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression (pointer_expression * IDENT) * (subscript_expression IDENT [ LIT ]))) + (binary_expression (pointer_expression * IDENT) * (subscript_expression IDENT [ LIT ])))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (pointer_expression * IDENT)) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))))) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )) * LIT) ))) / LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (break_statement break ;)) })) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT , IDENT , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 OptimizePlusImageLayers(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}" (type_identifier "undefined4") (function_declarator "OptimizePlusImageLayers(int param_1,int param_2)" (identifier "OptimizePlusImageLayers") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int *piVar17;\n  uint uVar18;\n  undefined4 uVar19;\n  int iVar20;\n  uint *puVar21;\n  uint uVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  char *pcVar26;\n  int local_d8;\n  uint local_d4;\n  int local_cc;\n  int *local_c8;\n  uint local_b8;\n  int local_a8;\n  int local_a0;\n  uint local_98;\n  uint local_94;\n  int local_90;\n  uint local_8c;\n  uint local_80;\n  longlong local_74;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xfe649;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }\n  iVar10 = GetFirstImageInList(param_1);\n  if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }\n  uVar19 = 0;\n  ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);\nLAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  FUN_002decd0();\ncode_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);\n  AppendImageToList(&local_44,iVar15);\n  local_d8 = local_d8 + 1;\n  goto joined_r0x000ff4a8;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "double dVar3;" (primitive_type "double") (identifier "dVar3") (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "double dVar6;" (primitive_type "double") (identifier "dVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "uint *puVar21;" (type_identifier "uint") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "char *pcVar26;" (primitive_type "char") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "int local_d8;" (primitive_type "int") (identifier "local_d8") (; ";")) (declaration "uint local_d4;" (type_identifier "uint") (identifier "local_d4") (; ";")) (declaration "int local_cc;" (primitive_type "int") (identifier "local_cc") (; ";")) (declaration "int *local_c8;" (primitive_type "int") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "uint local_94;" (type_identifier "uint") (identifier "local_94") (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (declaration "uint local_8c;" (type_identifier "uint") (identifier "local_8c") (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "longlong local_74;" (type_identifier "longlong") (identifier "local_74") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0xfe649;" (assignment_expression "uStack_14 = 0xfe649" (identifier "uStack_14") (= "=") (number_literal "0xfe649")) (; ";")) (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("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\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("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");\n  }" ({ "{") (expression_statement "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");" (call_expression "__assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" (identifier "__assert_fail") (argument_list "("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames")" (( "(") (string_literal ""image != (const Image *) NULL"" (" """) (string_content "image != (const Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (number_literal "0x3ca") (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" (* "*") (cast_expression "(int *)(param_1 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3344)" (( "(") (binary_expression "param_1 + 0x3344" (identifier "param_1") (+ "+") (number_literal "0x3344")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,\n                  "OptimizeLayerFrames")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (number_literal "0x3cb") (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" (* "*") (cast_expression "(int *)(param_1 + 0x3328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3328)" (( "(") (binary_expression "param_1 + 0x3328" (identifier "param_1") (+ "+") (number_literal "0x3328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,\n                   param_1 + 0x318)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) (, ",") (number_literal "0x3cd") (, ",") (pointer_expression "&DAT_002f75ae" (& "&") (identifier "DAT_002f75ae")) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\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("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");\n  }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,\n                  "OptimizeLayerFrames")" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (number_literal "0x3ce") (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (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")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");\n  }" ({ "{") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,\n                  "OptimizeLayerFrames")" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (number_literal "0x3cf") (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar10 = GetFirstImageInList(param_1);" (assignment_expression "iVar10 = GetFirstImageInList(param_1)" (identifier "iVar10") (= "=") (call_expression "GetFirstImageInList(param_1)" (identifier "GetFirstImageInList") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }\n  else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);\n    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);\n    if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }\n  }" ({ "{") (labeled_statement "LAB_000fe844:\n    uVar24 = GetImageListLength(iVar10);" (statement_identifier "LAB_000fe844") (: ":") (expression_statement "uVar24 = GetImageListLength(iVar10);" (assignment_expression "uVar24 = GetImageListLength(iVar10)" (identifier "uVar24") (= "=") (call_expression "GetImageListLength(iVar10)" (identifier "GetImageListLength") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";"))) (expression_statement "puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);" (assignment_expression "puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20)" (identifier "puVar12") (= "=") (cast_expression "(uint *)AcquireQuantumMemory(uVar24,0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(uVar24,0x20)" (identifier "AcquireQuantumMemory") (argument_list "(uVar24,0x20)" (( "(") (identifier "uVar24") (, ",") (number_literal "0x20") () ")"))))) (; ";")) (if_statement "if (puVar12 == (uint *)0x0) {\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }\n    else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" (if "if") (parenthesized_expression "(puVar12 == (uint *)0x0)" (( "(") (binary_expression "puVar12 == (uint *)0x0" (identifier "puVar12") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3ed;\n    }" ({ "{") (expression_statement "pcVar26 = "MemoryAllocationFailed";" (assignment_expression "pcVar26 = "MemoryAllocationFailed"" (identifier "pcVar26") (= "=") (string_literal ""MemoryAllocationFailed"" (" """) (string_content "MemoryAllocationFailed") (" """))) (; ";")) (expression_statement "uVar25 = 400;" (assignment_expression "uVar25 = 400" (identifier "uVar25") (= "=") (number_literal "400")) (; ";")) (expression_statement "uVar24 = 0x3ed;" (assignment_expression "uVar24 = 0x3ed" (identifier "uVar24") (= "=") (number_literal "0x3ed")) (; ";")) (} "}")) (else_clause "else {\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" (else "else") (compound_statement "{\n      uVar24 = GetImageListLength(param_1);\n      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);\n      if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }\n      RelinquishMagickMemory(puVar12);\n      pcVar26 = "MemoryAllocationFailed";\n      uVar25 = 400;\n      uVar24 = 0x3f4;\n    }" ({ "{") (expression_statement "uVar24 = GetImageListLength(param_1);" (assignment_expression "uVar24 = GetImageListLength(param_1)" (identifier "uVar24") (= "=") (call_expression "GetImageListLength(param_1)" (identifier "GetImageListLength") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);" (assignment_expression "puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)AcquireQuantumMemory(uVar24,8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(uVar24,8)" (identifier "AcquireQuantumMemory") (argument_list "(uVar24,8)" (( "(") (identifier "uVar24") (, ",") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);\n        if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }\nLAB_000ff84d:\n        uVar19 = 0;\n        RelinquishMagickMemory(puVar12);\n        RelinquishMagickMemory(puVar13);\n        goto LAB_000fe7b4;\n      }" ({ "{") (expression_statement "local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2);" (assignment_expression "local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" (identifier "local_a8") (= "=") (call_expression "CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" (identifier "CloneImage") (argument_list "(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1\n                              ,param_2)" (( "(") (identifier "iVar10") (, ",") (pointer_expression "*(undefined4 *)(iVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x1c)" (( "(") (binary_expression "iVar10 + 0x1c" (identifier "iVar10") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (local_a8 != 0) {\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }" (if "if") (parenthesized_expression "(local_a8 != 0)" (( "(") (binary_expression "local_a8 != 0" (identifier "local_a8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);\n          uVar24 = *(undefined4 *)(iVar10 + 0x204);\n          *(undefined8 *)(local_a8 + 0xbc) = 0;\n          *(undefined4 *)(local_a8 + 0x208) = 0;\n          *(undefined4 *)(local_a8 + 0x20c) = 0;\n          *(undefined4 *)(local_a8 + 0x204) = uVar24;\n          *(undefined4 *)(local_a8 + 0x240) = 1;\n          *(undefined4 *)(local_a8 + 0x84) = 4;\n          SetImageBackgroundColor(local_a8,param_2);\n          *puVar13 = 1;\n          FUN_000fba40(param_2);\n          *puVar12 = local_5c;\n          puVar12[1] = local_58;\n          puVar12[2] = local_54;\n          puVar12[3] = local_50;\n          local_d8 = GetNextImageInList(iVar10);\n          if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }\n          DestroyImage(local_a8);\n          uVar24 = AcquireExceptionInfo();\n          iVar10 = GetFirstImageInList(param_1);\n          local_44 = NewImageList();\n          local_d8 = 0;\njoined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }\n          DestroyExceptionInfo(uVar24);\n          RelinquishMagickMemory(puVar12);\n          RelinquishMagickMemory(puVar13);\n          uVar19 = GetFirstImageInList(local_44);\n          goto LAB_000fe7b4;\n        }" ({ "{") (expression_statement "*(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);" (assignment_expression "*(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200)" (pointer_expression "*(undefined4 *)(local_a8 + 0x200)" (* "*") (cast_expression "(undefined4 *)(local_a8 + 0x200)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x200)" (( "(") (binary_expression "local_a8 + 0x200" (identifier "local_a8") (+ "+") (number_literal "0x200")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x200)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x200)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x200)" (( "(") (binary_expression "iVar10 + 0x200" (identifier "iVar10") (+ "+") (number_literal "0x200")) () ")"))))) (; ";")) (expression_statement "uVar24 = *(undefined4 *)(iVar10 + 0x204);" (assignment_expression "uVar24 = *(undefined4 *)(iVar10 + 0x204)" (identifier "uVar24") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x204)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x204)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x204)" (( "(") (binary_expression "iVar10 + 0x204" (identifier "iVar10") (+ "+") (number_literal "0x204")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(local_a8 + 0xbc) = 0;" (assignment_expression "*(undefined8 *)(local_a8 + 0xbc) = 0" (pointer_expression "*(undefined8 *)(local_a8 + 0xbc)" (* "*") (cast_expression "(undefined8 *)(local_a8 + 0xbc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0xbc)" (( "(") (binary_expression "local_a8 + 0xbc" (identifier "local_a8") (+ "+") (number_literal "0xbc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_a8 + 0x208) = 0;" (assignment_expression "*(undefined4 *)(local_a8 + 0x208) = 0" (pointer_expression "*(undefined4 *)(local_a8 + 0x208)" (* "*") (cast_expression "(undefined4 *)(local_a8 + 0x208)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x208)" (( "(") (binary_expression "local_a8 + 0x208" (identifier "local_a8") (+ "+") (number_literal "0x208")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_a8 + 0x20c) = 0;" (assignment_expression "*(undefined4 *)(local_a8 + 0x20c) = 0" (pointer_expression "*(undefined4 *)(local_a8 + 0x20c)" (* "*") (cast_expression "(undefined4 *)(local_a8 + 0x20c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x20c)" (( "(") (binary_expression "local_a8 + 0x20c" (identifier "local_a8") (+ "+") (number_literal "0x20c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_a8 + 0x204) = uVar24;" (assignment_expression "*(undefined4 *)(local_a8 + 0x204) = uVar24" (pointer_expression "*(undefined4 *)(local_a8 + 0x204)" (* "*") (cast_expression "(undefined4 *)(local_a8 + 0x204)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x204)" (( "(") (binary_expression "local_a8 + 0x204" (identifier "local_a8") (+ "+") (number_literal "0x204")) () ")")))) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "*(undefined4 *)(local_a8 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(local_a8 + 0x240) = 1" (pointer_expression "*(undefined4 *)(local_a8 + 0x240)" (* "*") (cast_expression "(undefined4 *)(local_a8 + 0x240)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x240)" (( "(") (binary_expression "local_a8 + 0x240" (identifier "local_a8") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(local_a8 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(local_a8 + 0x84) = 4" (pointer_expression "*(undefined4 *)(local_a8 + 0x84)" (* "*") (cast_expression "(undefined4 *)(local_a8 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x84)" (( "(") (binary_expression "local_a8 + 0x84" (identifier "local_a8") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "SetImageBackgroundColor(local_a8,param_2);" (call_expression "SetImageBackgroundColor(local_a8,param_2)" (identifier "SetImageBackgroundColor") (argument_list "(local_a8,param_2)" (( "(") (identifier "local_a8") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" (identifier "FUN_000fba40") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*puVar12 = local_5c;" (assignment_expression "*puVar12 = local_5c" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar12[1] = local_58;" (assignment_expression "puVar12[1] = local_58" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar12[2] = local_54;" (assignment_expression "puVar12[2] = local_54" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "puVar12[3] = local_50;" (assignment_expression "puVar12[3] = local_50" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_d8 = GetNextImageInList(iVar10);" (assignment_expression "local_d8 = GetNextImageInList(iVar10)" (identifier "local_d8") (= "=") (call_expression "GetNextImageInList(iVar10)" (identifier "GetNextImageInList") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (local_d8 != 0) {\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }" (if "if") (parenthesized_expression "(local_d8 != 0)" (( "(") (binary_expression "local_d8 != 0" (identifier "local_d8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar20 = 0;\n            local_cc = 1;\n            iVar10 = 0;\n            do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);\n          }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = 1;" (assignment_expression "local_cc = 1" (identifier "local_cc") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            } while (local_d8 != 0);" (do "do") (compound_statement "{\n              puVar21 = puVar12 + local_cc * 4;\n              FUN_000fba40(param_2);\n              *puVar21 = local_5c;\n              puVar21[1] = local_58;\n              puVar21[2] = local_54;\n              puVar21[3] = local_50;\n              if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }\n              local_cc = local_cc + 1;\n              local_d8 = GetNextImageInList(local_d8);\n            }" ({ "{") (expression_statement "puVar21 = puVar12 + local_cc * 4;" (assignment_expression "puVar21 = puVar12 + local_cc * 4" (identifier "puVar21") (= "=") (binary_expression "puVar12 + local_cc * 4" (identifier "puVar12") (+ "+") (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")))) (; ";")) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" (identifier "FUN_000fba40") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*puVar21 = local_5c;" (assignment_expression "*puVar21 = local_5c" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar21[1] = local_58;" (assignment_expression "puVar21[1] = local_58" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar21[2] = local_54;" (assignment_expression "puVar21[2] = local_54" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "puVar21[3] = local_50;" (assignment_expression "puVar21[3] = local_50" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (if_statement "if ((int)local_54 < 0) {\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }\n              else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" (if "if") (parenthesized_expression "((int)local_54 < 0)" (( "(") (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\nLAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }\n                *local_c8 = 8;\n                puVar13[local_cc + 0x40000000] = 1;\n                *puVar21 = puVar12[local_cc * 4 + -4];\n                puVar21[1] = puVar12[local_cc * 4 + -3];\n                puVar21[2] = puVar12[local_cc * 4 + -2];\n                puVar21[3] = puVar12[local_cc * 4 + -1];\n              }" ({ "{") (expression_statement "local_c8 = puVar13 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = puVar13 + local_cc + 0x3fffffff" (identifier "local_c8") (= "=") (binary_expression "puVar13 + local_cc + 0x3fffffff" (binary_expression "puVar13 + local_cc" (identifier "puVar13") (+ "+") (identifier "local_cc")) (+ "+") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000fe9b6:\n                if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" (statement_identifier "LAB_000fe9b6") (: ":") (if_statement "if (local_cc == 1) {\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" (if "if") (parenthesized_expression "(local_cc == 1)" (( "(") (binary_expression "local_cc == 1" (identifier "local_cc") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  iVar15 = iVar20;\n                  if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }\nLAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;\n                  iVar10 = DestroyImage(iVar10);\n                  iVar15 = iVar20;\n                  if (*local_c8 != 3) goto LAB_000fef38;\n                  if (iVar20 == 0) goto LAB_000fee89;\nLAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);\n                  iVar14 = *local_c8;\nLAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;\n                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));\n                  if (local_a8 != 0) goto LAB_000fea38;\n                  goto LAB_000ff84d;\n                }" ({ "{") (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" (identifier "iVar15") (= "=") (identifier "iVar20")) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);\n                    iVar14 = *local_c8;\n                    if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }\n                    iVar20 = 0;\n                    local_a8 = iVar15;\nLAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;\n                    if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }\n                    goto LAB_000fee89;\n                  }" ({ "{") (labeled_statement "LAB_000fef38:\n                    local_a8 = DestroyImage(local_a8);" (statement_identifier "LAB_000fef38") (: ":") (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" (identifier "local_a8") (= "=") (call_expression "DestroyImage(local_a8)" (identifier "DestroyImage") (argument_list "(local_a8)" (( "(") (identifier "local_a8") () ")")))) (; ";"))) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" (identifier "iVar14") (= "=") (pointer_expression "*local_c8" (* "*") (identifier "local_c8"))) (; ";")) (if_statement "if (iVar14 != 2) {\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" (if "if") (parenthesized_expression "(iVar14 != 2)" (( "(") (binary_expression "iVar14 != 2" (identifier "iVar14") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                      iVar20 = iVar15;\n                      if (iVar15 != 0) goto LAB_000fe9f5;\n                      goto LAB_000fea09;\n                    }" ({ "{") (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" (identifier "iVar20") (= "=") (identifier "iVar15")) (; ";")) (if_statement "if (iVar15 != 0) goto LAB_000fe9f5;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fe9f5;" (goto "goto") (statement_identifier "LAB_000fe9f5") (; ";"))) (goto_statement "goto LAB_000fea09;" (goto "goto") (statement_identifier "LAB_000fea09") (; ";")) (} "}"))) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = iVar15;" (assignment_expression "local_a8 = iVar15" (identifier "local_a8") (= "=") (identifier "iVar15")) (; ";")) (labeled_statement "LAB_000fef60:\n                    local_a0 = local_cc + 0x3fffffff;" (statement_identifier "LAB_000fef60") (: ":") (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" (identifier "local_a0") (= "=") (binary_expression "local_cc + 0x3fffffff" (identifier "local_cc") (+ "+") (number_literal "0x3fffffff"))) (; ";"))) (if_statement "if (local_a8 == 0) {\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" (if "if") (parenthesized_expression "(local_a8 == 0)" (( "(") (binary_expression "local_a8 == 0" (identifier "local_a8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");\n                    }" ({ "{") (expression_statement "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames");" (call_expression "__assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" (identifier "__assert_fail") (argument_list "("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,\n                                    "OptimizeLayerFrames")" (( "(") (string_literal ""prev_image != (Image *) NULL"" (" """) (string_content "prev_image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (number_literal "0x527") (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000fee89;" (goto "goto") (statement_identifier "LAB_000fee89") (; ";")) (} "}"))) (labeled_statement "LAB_000fe9cd:\n                  local_a0 = local_cc + 0x3fffffff;" (statement_identifier "LAB_000fe9cd") (: ":") (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" (identifier "local_a0") (= "=") (binary_expression "local_cc + 0x3fffffff" (identifier "local_cc") (+ "+") (number_literal "0x3fffffff"))) (; ";"))) (expression_statement "iVar10 = DestroyImage(iVar10);" (assignment_expression "iVar10 = DestroyImage(iVar10)" (identifier "iVar10") (= "=") (call_expression "DestroyImage(iVar10)" (identifier "DestroyImage") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" (identifier "iVar15") (= "=") (identifier "iVar20")) (; ";")) (if_statement "if (*local_c8 != 3) goto LAB_000fef38;" (if "if") (parenthesized_expression "(*local_c8 != 3)" (( "(") (binary_expression "*local_c8 != 3" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_000fef38;" (goto "goto") (statement_identifier "LAB_000fef38") (; ";"))) (if_statement "if (iVar20 == 0) goto LAB_000fee89;" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fee89;" (goto "goto") (statement_identifier "LAB_000fee89") (; ";"))) (labeled_statement "LAB_000fe9f5:\n                  iVar20 = DestroyImage(iVar15);" (statement_identifier "LAB_000fe9f5") (: ":") (expression_statement "iVar20 = DestroyImage(iVar15);" (assignment_expression "iVar20 = DestroyImage(iVar15)" (identifier "iVar20") (= "=") (call_expression "DestroyImage(iVar15)" (identifier "DestroyImage") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";"))) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" (identifier "iVar14") (= "=") (pointer_expression "*local_c8" (* "*") (identifier "local_c8"))) (; ";")) (labeled_statement "LAB_000fea09:\n                  if (iVar14 != 1) goto LAB_000fef60;" (statement_identifier "LAB_000fea09") (: ":") (if_statement "if (iVar14 != 1) goto LAB_000fef60;" (if "if") (parenthesized_expression "(iVar14 != 1)" (( "(") (binary_expression "iVar14 != 1" (identifier "iVar14") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_000fef60;" (goto "goto") (statement_identifier "LAB_000fef60") (; ";")))) (expression_statement "local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));" (assignment_expression "local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c))" (identifier "local_a8") (= "=") (call_expression "ReferenceImage(*(undefined4 *)(local_d8 + 0x333c))" (identifier "ReferenceImage") (argument_list "(*(undefined4 *)(local_d8 + 0x333c))" (( "(") (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" (* "*") (cast_expression "(undefined4 *)(local_d8 + 0x333c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 0x333c)" (( "(") (binary_expression "local_d8 + 0x333c" (identifier "local_d8") (+ "+") (number_literal "0x333c")) () ")")))) () ")")))) (; ";")) (if_statement "if (local_a8 != 0) goto LAB_000fea38;" (if "if") (parenthesized_expression "(local_a8 != 0)" (( "(") (binary_expression "local_a8 != 0" (identifier "local_a8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fea38;" (goto "goto") (statement_identifier "LAB_000fea38") (; ";"))) (goto_statement "goto LAB_000ff84d;" (goto "goto") (statement_identifier "LAB_000ff84d") (; ";")) (} "}")))) (expression_statement "*local_c8 = 8;" (assignment_expression "*local_c8 = 8" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar13[local_cc + 0x40000000] = 1;" (assignment_expression "puVar13[local_cc + 0x40000000] = 1" (subscript_expression "puVar13[local_cc + 0x40000000]" (identifier "puVar13") ([ "[") (binary_expression "local_cc + 0x40000000" (identifier "local_cc") (+ "+") (number_literal "0x40000000")) (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*puVar21 = puVar12[local_cc * 4 + -4];" (assignment_expression "*puVar21 = puVar12[local_cc * 4 + -4]" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (subscript_expression "puVar12[local_cc * 4 + -4]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + -4" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "-4")) (] "]"))) (; ";")) (expression_statement "puVar21[1] = puVar12[local_cc * 4 + -3];" (assignment_expression "puVar21[1] = puVar12[local_cc * 4 + -3]" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar12[local_cc * 4 + -3]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + -3" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "-3")) (] "]"))) (; ";")) (expression_statement "puVar21[2] = puVar12[local_cc * 4 + -2];" (assignment_expression "puVar21[2] = puVar12[local_cc * 4 + -2]" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar12[local_cc * 4 + -2]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + -2" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "-2")) (] "]"))) (; ";")) (expression_statement "puVar21[3] = puVar12[local_cc * 4 + -1];" (assignment_expression "puVar21[3] = puVar12[local_cc * 4 + -1]" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar12[local_cc * 4 + -1]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + -1" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "-1")) (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" (else "else") (compound_statement "{\n                iVar15 = FUN_000fa9a0(param_2);\n                uVar16 = puVar21[2];\n                local_c8 = puVar13 + local_cc + 0x3fffffff;\n                *local_c8 = 1;\n                if ((int)uVar16 < 0) goto LAB_000fe9b6;\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }\n                local_a0 = local_cc + 0x3fffffff;\n                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }\n                local_90 = iVar15;\n                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar10 + 0x84) = 4;\n                FUN_000fab80(3,param_2);\n                uVar8 = local_24;\n                uVar7 = local_28;\n                uVar22 = local_2c;\n                uVar16 = local_30;\n                local_94 = local_30;\n                local_98 = local_2c;\n                if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }\n                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);\n                if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }\n                *(undefined4 *)(iVar15 + 0x84) = 4;\n                puVar1 = puVar12 + local_cc * 4 + -4;\n                uVar16 = puVar1[1];\n                uVar22 = *puVar1;\n                local_b8 = puVar1[2];\n                local_80 = puVar1[3];\n                if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }\n                FUN_000fba40(param_2);\n                local_40 = local_5c;\n                local_34 = local_50;\n                local_3c = local_58;\n                local_38 = local_54;\n                local_8c = uVar16;\n                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }\n                iVar14 = *local_c8;\n                iVar20 = iVar15;\n                if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }\n                if (iVar14 != 9) goto LAB_000fe9cd;\n                iVar20 = DestroyImage(iVar15);\n                DestroyImage(local_a8);\n                puVar12[local_cc * 4 + 4] = *puVar21;\n                puVar12[local_cc * 4 + 5] = puVar21[1];\n                puVar12[local_cc * 4 + 6] = puVar21[2];\n                puVar12[local_cc * 4 + 7] = puVar21[3];\n                *puVar21 = local_94;\n                puVar21[1] = local_98;\n                puVar21[2] = uVar7;\n                puVar21[3] = uVar8;\n                *local_c8 = 9;\n                puVar13[local_cc + 0x40000000] = 2;\n                local_a0 = local_cc + 0x40000000;\n                local_cc = local_cc + 1;\n                local_a8 = iVar10;\n                iVar10 = 0;\nLAB_000fee89:\n                local_c8 = puVar13 + local_a0;\nLAB_000fea38:\n                puVar13[local_cc] = *local_c8;\n              }" ({ "{") (expression_statement "iVar15 = FUN_000fa9a0(param_2);" (assignment_expression "iVar15 = FUN_000fa9a0(param_2)" (identifier "iVar15") (= "=") (call_expression "FUN_000fa9a0(param_2)" (identifier "FUN_000fa9a0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar16 = puVar21[2];" (assignment_expression "uVar16 = puVar21[2]" (identifier "uVar16") (= "=") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_c8 = puVar13 + local_cc + 0x3fffffff;" (assignment_expression "local_c8 = puVar13 + local_cc + 0x3fffffff" (identifier "local_c8") (= "=") (binary_expression "puVar13 + local_cc + 0x3fffffff" (binary_expression "puVar13 + local_cc" (identifier "puVar13") (+ "+") (identifier "local_cc")) (+ "+") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "*local_c8 = 1;" (assignment_expression "*local_c8 = 1" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "1")) (; ";")) (if_statement "if ((int)uVar16 < 0) goto LAB_000fe9b6;" (if "if") (parenthesized_expression "((int)uVar16 < 0)" (( "(") (binary_expression "(int)uVar16 < 0" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fe9b6;" (goto "goto") (statement_identifier "LAB_000fe9b6") (; ";"))) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" (identifier "FUN_000fba40") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" (identifier "local_40") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" (identifier "local_34") (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" (identifier "local_3c") (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" (identifier "local_38") (= "=") (identifier "local_54")) (; ";")) (if_statement "if ((int)local_54 < 0) {\n                  bVar23 = true;\n                  local_90 = 0;\n                }\n                else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" (if "if") (parenthesized_expression "((int)local_54 < 0)" (( "(") (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar23 = true;\n                  local_90 = 0;\n                }" ({ "{") (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" (else "else") (compound_statement "{\n                  local_90 = FUN_000fa9a0(param_2);\n                  bVar23 = local_90 == 0;\n                }" ({ "{") (expression_statement "local_90 = FUN_000fa9a0(param_2);" (assignment_expression "local_90 = FUN_000fa9a0(param_2)" (identifier "local_90") (= "=") (call_expression "FUN_000fa9a0(param_2)" (identifier "FUN_000fa9a0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "bVar23 = local_90 == 0;" (assignment_expression "bVar23 = local_90 == 0" (identifier "bVar23") (= "=") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0"))) (; ";")) (} "}")))) (expression_statement "local_a0 = local_cc + 0x3fffffff;" (assignment_expression "local_a0 = local_cc + 0x3fffffff" (identifier "local_a0") (= "=") (binary_expression "local_cc + 0x3fffffff" (identifier "local_cc") (+ "+") (number_literal "0x3fffffff"))) (; ";")) (if_statement "if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }" (if "if") (parenthesized_expression "(((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1]))" (( "(") (binary_expression "((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])" (parenthesized_expression "((iVar15 != 0) && (bVar23))" (( "(") (binary_expression "(iVar15 != 0) && (bVar23)" (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_40 * local_3c < *puVar21 * puVar21[1])" (( "(") (binary_expression "local_40 * local_3c < *puVar21 * puVar21[1]" (binary_expression "local_40 * local_3c" (identifier "local_40") (* "*") (identifier "local_3c")) (< "<") (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (* "*") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")))) () ")"))) () ")")) (compound_statement "{\n                  *puVar21 = local_40;\n                  puVar21[1] = local_3c;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  *local_c8 = 3;\n                  iVar15 = local_90;\n                }" ({ "{") (expression_statement "*puVar21 = local_40;" (assignment_expression "*puVar21 = local_40" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "puVar21[1] = local_3c;" (assignment_expression "puVar21[1] = local_3c" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar21[2] = local_38;" (assignment_expression "puVar21[2] = local_38" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar21[3] = local_34;" (assignment_expression "puVar21[3] = local_34" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*local_c8 = 3;" (assignment_expression "*local_c8 = 3" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar15 = local_90;" (assignment_expression "iVar15 = local_90" (identifier "iVar15") (= "=") (identifier "local_90")) (; ";")) (} "}"))) (expression_statement "local_90 = iVar15;" (assignment_expression "local_90 = iVar15" (identifier "local_90") (= "=") (identifier "iVar15")) (; ";")) (expression_statement "iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);" (assignment_expression "iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" (identifier "iVar10") (= "=") (call_expression "CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" (identifier "CloneImage") (argument_list "(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" (( "(") (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" (* "*") (cast_expression "(undefined4 *)(local_d8 + 0x333c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 0x333c)" (( "(") (binary_expression "local_d8 + 0x333c" (identifier "local_d8") (+ "+") (number_literal "0x333c")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  goto LAB_000fe7b4;\n                }" ({ "{") (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" (identifier "RelinquishMagickMemory") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" (identifier "DestroyImage") (argument_list "(local_a8)" (( "(") (identifier "local_a8") () ")"))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000fe7b4;" (goto "goto") (statement_identifier "LAB_000fe7b4") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar10 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar10 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar10 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x84)" (( "(") (binary_expression "iVar10 + 0x84" (identifier "iVar10") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_000fab80(3,param_2);" (call_expression "FUN_000fab80(3,param_2)" (identifier "FUN_000fab80") (argument_list "(3,param_2)" (( "(") (number_literal "3") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar8 = local_24;" (assignment_expression "uVar8 = local_24" (identifier "uVar8") (= "=") (identifier "local_24")) (; ";")) (expression_statement "uVar7 = local_28;" (assignment_expression "uVar7 = local_28" (identifier "uVar7") (= "=") (identifier "local_28")) (; ";")) (expression_statement "uVar22 = local_2c;" (assignment_expression "uVar22 = local_2c" (identifier "uVar22") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "uVar16 = local_30;" (assignment_expression "uVar16 = local_30" (identifier "uVar16") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_94 = local_30;" (assignment_expression "local_94 = local_30" (identifier "local_94") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_98 = local_2c;" (assignment_expression "local_98 = local_2c" (identifier "local_98") (= "=") (identifier "local_2c")) (; ";")) (if_statement "if (-1 < (int)local_28) {\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(-1 < (int)local_28)" (( "(") (binary_expression "-1 < (int)local_28" (number_literal "-1") (< "<") (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28"))) () ")")) (compound_statement "{\n                  if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }\n                  if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(iVar10 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x294) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x294) == 0" (pointer_expression "*(int *)(iVar10 + 0x294)" (* "*") (cast_expression "(int *)(iVar10 + 0x294)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x294)" (( "(") (binary_expression "iVar10 + 0x294" (identifier "iVar10") (+ "+") (number_literal "0x294")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    SetImageAlphaChannel(iVar10,0xb,param_2);\n                  }" ({ "{") (expression_statement "SetImageAlphaChannel(iVar10,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar10,0xb,param_2)" (identifier "SetImageAlphaChannel") (argument_list "(iVar10,0xb,param_2)" (( "(") (identifier "iVar10") (, ",") (number_literal "0xb") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if (0 < (int)uVar22) {\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }" (if "if") (parenthesized_expression "(0 < (int)uVar22)" (( "(") (binary_expression "0 < (int)uVar22" (number_literal "0") (< "<") (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22"))) () ")")) (compound_statement "{\n                    local_d4 = uVar8;\n                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }\n                  }" ({ "{") (expression_statement "local_d4 = uVar8;" (assignment_expression "local_d4 = uVar8" (identifier "local_d4") (= "=") (identifier "uVar8")) (; ";")) (while_statement "while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }" (while "while") (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0)" (( "(") (comma_expression "iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),\n                          iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2)" (identifier "iVar20") (= "=") (call_expression "GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2)" (identifier "GetAuthenticPixels") (argument_list "(iVar10,uVar7,local_d4,uVar16,1,param_2)" (( "(") (identifier "iVar10") (, ",") (identifier "uVar7") (, ",") (identifier "local_d4") (, ",") (identifier "uVar16") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                      if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar10,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;\n                    }" ({ "{") (if_statement "if (0 < (int)uVar16) {\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }" (if "if") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                        iVar15 = *(int *)(iVar10 + 0x298);\n                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }\n                      }" ({ "{") (expression_statement "iVar15 = *(int *)(iVar10 + 0x298);" (assignment_expression "iVar15 = *(int *)(iVar10 + 0x298)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar10 + 0x298)" (* "*") (cast_expression "(int *)(iVar10 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x298)" (( "(") (binary_expression "iVar10 + 0x298" (identifier "iVar10") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(iVar10 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(iVar10 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar10 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar10 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2a8)" (( "(") (binary_expression "iVar10 + 0x2a8" (identifier "iVar10") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);\n                        }" ({ "{") (expression_statement "iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar10 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(iVar10 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar10 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar10 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2a8)" (( "(") (binary_expression "iVar10 + 0x2a8" (identifier "iVar10") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          } while (uVar18 != uVar16);" (do "do") (compound_statement "{\n                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar15 * 8;\n                          }" ({ "{") (expression_statement "*(undefined8 *)(iVar20 + iVar14 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar14 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar14 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar20 + iVar14 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + iVar14 * 8)" (( "(") (binary_expression "iVar20 + iVar14 * 8" (identifier "iVar20") (+ "+") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar20 = iVar20 + iVar15 * 8;" (assignment_expression "iVar20 = iVar20 + iVar15 * 8" (identifier "iVar20") (= "=") (binary_expression "iVar20 + iVar15 * 8" (identifier "iVar20") (+ "+") (binary_expression "iVar15 * 8" (identifier "iVar15") (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 != uVar16)" (( "(") (binary_expression "uVar18 != uVar16" (identifier "uVar18") (!= "!=") (identifier "uVar16")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar20 = SyncAuthenticPixels(iVar10,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar10,param_2)" (identifier "iVar20") (= "=") (call_expression "SyncAuthenticPixels(iVar10,param_2)" (identifier "SyncAuthenticPixels") (argument_list "(iVar10,param_2)" (( "(") (identifier "iVar10") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))\n                      break;" (if "if") (parenthesized_expression "((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))" (( "(") (binary_expression "(iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4)" (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4)" (( "(") (comma_expression "local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (, ",") (binary_expression "uVar22 + uVar8 == local_d4" (binary_expression "uVar22 + uVar8" (identifier "uVar22") (+ "+") (identifier "uVar8")) (== "==") (identifier "local_d4"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" (identifier "FUN_000fba40") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (if_statement "if ((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {\n                  local_98 = 0;\n                  local_94 = 0;\n                }\n                else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" (if "if") (parenthesized_expression "((local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22))" (( "(") (binary_expression "(local_90 == 0) &&\n                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)" (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)" (( "(") (binary_expression "*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22" (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (* "*") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) (<= "<=") (binary_expression "local_5c * local_58 + uVar16 * uVar22" (binary_expression "local_5c * local_58" (identifier "local_5c") (* "*") (identifier "local_58")) (+ "+") (binary_expression "uVar16 * uVar22" (identifier "uVar16") (* "*") (identifier "uVar22")))) () ")"))) () ")")) (compound_statement "{\n                  local_98 = 0;\n                  local_94 = 0;\n                }" ({ "{") (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" (else "else") (compound_statement "{\n                  *puVar21 = local_5c;\n                  puVar21[1] = local_58;\n                  puVar21[2] = local_54;\n                  puVar21[3] = local_50;\n                  *local_c8 = 9;\n                }" ({ "{") (expression_statement "*puVar21 = local_5c;" (assignment_expression "*puVar21 = local_5c" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar21[1] = local_58;" (assignment_expression "puVar21[1] = local_58" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar21[2] = local_54;" (assignment_expression "puVar21[2] = local_54" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "puVar21[3] = local_50;" (assignment_expression "puVar21[3] = local_50" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "9")) (; ";")) (} "}")))) (expression_statement "iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);" (assignment_expression "iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" (identifier "iVar15") (= "=") (call_expression "CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" (identifier "CloneImage") (argument_list "(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2)" (( "(") (pointer_expression "*(undefined4 *)(local_d8 + 0x333c)" (* "*") (cast_expression "(undefined4 *)(local_d8 + 0x333c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 0x333c)" (( "(") (binary_expression "local_d8 + 0x333c" (identifier "local_d8") (+ "+") (number_literal "0x333c")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  RelinquishMagickMemory(puVar12);\n                  RelinquishMagickMemory(puVar13);\n                  DestroyImage(local_a8);\n                  uVar19 = 0;\n                  DestroyImage(iVar10);\n                  goto LAB_000fe7b4;\n                }" ({ "{") (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" (identifier "RelinquishMagickMemory") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" (identifier "DestroyImage") (argument_list "(local_a8)" (( "(") (identifier "local_a8") () ")"))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "DestroyImage(iVar10);" (call_expression "DestroyImage(iVar10)" (identifier "DestroyImage") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (goto_statement "goto LAB_000fe7b4;" (goto "goto") (statement_identifier "LAB_000fe7b4") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar15 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar15 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar15 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x84)" (( "(") (binary_expression "iVar15 + 0x84" (identifier "iVar15") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar1 = puVar12 + local_cc * 4 + -4;" (assignment_expression "puVar1 = puVar12 + local_cc * 4 + -4" (identifier "puVar1") (= "=") (binary_expression "puVar12 + local_cc * 4 + -4" (binary_expression "puVar12 + local_cc * 4" (identifier "puVar12") (+ "+") (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4"))) (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "uVar16 = puVar1[1];" (assignment_expression "uVar16 = puVar1[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar22 = *puVar1;" (assignment_expression "uVar22 = *puVar1" (identifier "uVar22") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "local_b8 = puVar1[2];" (assignment_expression "local_b8 = puVar1[2]" (identifier "local_b8") (= "=") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_80 = puVar1[3];" (assignment_expression "local_80 = puVar1[3]" (identifier "local_80") (= "=") (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (-1 < (int)local_b8) {\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(-1 < (int)local_b8)" (( "(") (binary_expression "-1 < (int)local_b8" (number_literal "-1") (< "<") (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8"))) () ")")) (compound_statement "{\n                  if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }\n                  if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(iVar15 + 0x294) == 0) {\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar15 + 0x294) == 0)" (( "(") (binary_expression "*(int *)(iVar15 + 0x294) == 0" (pointer_expression "*(int *)(iVar15 + 0x294)" (* "*") (cast_expression "(int *)(iVar15 + 0x294)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x294)" (( "(") (binary_expression "iVar15 + 0x294" (identifier "iVar15") (+ "+") (number_literal "0x294")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    SetImageAlphaChannel(iVar15,0xb,param_2);\n                  }" ({ "{") (expression_statement "SetImageAlphaChannel(iVar15,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar15,0xb,param_2)" (identifier "SetImageAlphaChannel") (argument_list "(iVar15,0xb,param_2)" (( "(") (identifier "iVar15") (, ",") (number_literal "0xb") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if (0 < (int)uVar16) {\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }" (if "if") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                    local_d4 = local_80;\n                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }\n                  }" ({ "{") (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" (identifier "local_d4") (= "=") (identifier "local_80")) (; ";")) (while_statement "while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0) {\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }" (while "while") (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0)" (( "(") (comma_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                          iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" (identifier "iVar20") (= "=") (call_expression "GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" (identifier "GetAuthenticPixels") (argument_list "(iVar15,local_b8,local_d4,uVar22,1,param_2)" (( "(") (identifier "iVar15") (, ",") (identifier "local_b8") (, ",") (identifier "local_d4") (, ",") (identifier "uVar22") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                      if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }\n                      iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;\n                    }" ({ "{") (if_statement "if (0 < (int)uVar22) {\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }" (if "if") (parenthesized_expression "(0 < (int)uVar22)" (( "(") (binary_expression "0 < (int)uVar22" (number_literal "0") (< "<") (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22"))) () ")")) (compound_statement "{\n                        iVar14 = *(int *)(iVar15 + 0x298);\n                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }\n                      }" ({ "{") (expression_statement "iVar14 = *(int *)(iVar15 + 0x298);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x298)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar15 + 0x298)" (* "*") (cast_expression "(int *)(iVar15 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x298)" (( "(") (binary_expression "iVar15 + 0x298" (identifier "iVar15") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar15 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar15 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2a8)" (( "(") (binary_expression "iVar15 + 0x2a8" (identifier "iVar15") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                          uVar18 = 0;\n                          do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);\n                        }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar15 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2a8)" (( "(") (binary_expression "iVar15 + 0x2a8" (identifier "iVar15") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          } while (uVar18 != uVar22);" (do "do") (compound_statement "{\n                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                            uVar18 = uVar18 + 1;\n                            iVar20 = iVar20 + iVar14 * 8;\n                          }" ({ "{") (expression_statement "*(undefined8 *)(iVar20 + iVar2 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar2 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar2 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar20 + iVar2 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + iVar2 * 8)" (( "(") (binary_expression "iVar20 + iVar2 * 8" (identifier "iVar20") (+ "+") (binary_expression "iVar2 * 8" (identifier "iVar2") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar20 = iVar20 + iVar14 * 8;" (assignment_expression "iVar20 = iVar20 + iVar14 * 8" (identifier "iVar20") (= "=") (binary_expression "iVar20 + iVar14 * 8" (identifier "iVar20") (+ "+") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 != uVar22)" (( "(") (binary_expression "uVar18 != uVar22" (identifier "uVar18") (!= "!=") (identifier "uVar22")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar20 = SyncAuthenticPixels(iVar15,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar15,param_2)" (identifier "iVar20") (= "=") (call_expression "SyncAuthenticPixels(iVar15,param_2)" (identifier "SyncAuthenticPixels") (argument_list "(iVar15,param_2)" (( "(") (identifier "iVar15") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))\n                      break;" (if "if") (parenthesized_expression "((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))" (( "(") (binary_expression "(iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80)" (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80)" (( "(") (comma_expression "local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (, ",") (binary_expression "local_d4 == uVar16 + local_80" (identifier "local_d4") (== "==") (binary_expression "uVar16 + local_80" (identifier "uVar16") (+ "+") (identifier "local_80")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_000fba40(param_2);" (call_expression "FUN_000fba40(param_2)" (identifier "FUN_000fba40") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" (identifier "local_40") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" (identifier "local_34") (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" (identifier "local_3c") (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" (identifier "local_38") (= "=") (identifier "local_54")) (; ";")) (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" (identifier "local_8c") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }" (if "if") (parenthesized_expression "((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0))" (( "(") (binary_expression "(-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)" (parenthesized_expression "(-1 < (int)local_54)" (( "(") (binary_expression "-1 < (int)local_54" (number_literal "-1") (< "<") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54"))) () ")")) (&& "&&") (parenthesized_expression "(iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)" (( "(") (comma_expression "iVar20 = FUN_000fa9a0(param_2), iVar20 != 0" (assignment_expression "iVar20 = FUN_000fa9a0(param_2)" (identifier "iVar20") (= "=") (call_expression "FUN_000fa9a0(param_2)" (identifier "FUN_000fa9a0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  FUN_000fab80(3,param_2);\n                  local_3c = local_58;\n                  local_40 = local_5c;\n                  if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }\n                  if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }\n                  FUN_000fab80(4,param_2);\n                  local_40 = local_5c;\n                  local_3c = local_58;\n                  local_38 = local_54;\n                  local_34 = local_50;\n                }" ({ "{") (expression_statement "FUN_000fab80(3,param_2);" (call_expression "FUN_000fab80(3,param_2)" (identifier "FUN_000fab80") (argument_list "(3,param_2)" (( "(") (number_literal "3") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" (identifier "local_3c") (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" (identifier "local_40") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if ((int)local_b8 < 0) {\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }\n                  else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "((int)local_b8 < 0)" (( "(") (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    local_8c = local_58;\n                    uVar22 = local_5c;\n                    local_b8 = local_54;\n                    local_80 = local_50;\n                  }" ({ "{") (expression_statement "local_8c = local_58;" (assignment_expression "local_8c = local_58" (identifier "local_8c") (= "=") (identifier "local_58")) (; ";")) (expression_statement "uVar22 = local_5c;" (assignment_expression "uVar22 = local_5c" (identifier "uVar22") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_b8 = local_54;" (assignment_expression "local_b8 = local_54" (identifier "local_b8") (= "=") (identifier "local_54")) (; ";")) (expression_statement "local_80 = local_50;" (assignment_expression "local_80 = local_50" (identifier "local_80") (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }\n                    if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                  }" ({ "{") (if_statement "if ((int)local_54 < (int)local_b8) {\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }\n                    else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" (if "if") (parenthesized_expression "((int)local_54 < (int)local_b8)" (( "(") (binary_expression "(int)local_54 < (int)local_b8" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (< "<") (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8"))) () ")")) (compound_statement "{\n                      iVar20 = local_b8 - local_54;\n                      local_b8 = local_54;\n                      uVar18 = iVar20 + uVar22;\n                      uVar22 = local_5c;\n                      if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }\n                    }" ({ "{") (expression_statement "iVar20 = local_b8 - local_54;" (assignment_expression "iVar20 = local_b8 - local_54" (identifier "iVar20") (= "=") (binary_expression "local_b8 - local_54" (identifier "local_b8") (- "-") (identifier "local_54"))) (; ";")) (expression_statement "local_b8 = local_54;" (assignment_expression "local_b8 = local_54" (identifier "local_b8") (= "=") (identifier "local_54")) (; ";")) (expression_statement "uVar18 = iVar20 + uVar22;" (assignment_expression "uVar18 = iVar20 + uVar22" (identifier "uVar18") (= "=") (binary_expression "iVar20 + uVar22" (identifier "iVar20") (+ "+") (identifier "uVar22"))) (; ";")) (expression_statement "uVar22 = local_5c;" (assignment_expression "uVar22 = local_5c" (identifier "uVar22") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if (local_5c <= uVar18) {\n                        uVar22 = uVar18;\n                      }" (if "if") (parenthesized_expression "(local_5c <= uVar18)" (( "(") (binary_expression "local_5c <= uVar18" (identifier "local_5c") (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n                        uVar22 = uVar18;\n                      }" ({ "{") (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" (identifier "uVar22") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" (else "else") (compound_statement "{\n                      local_40 = (local_54 - local_b8) + local_5c;\n                      if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }\n                    }" ({ "{") (expression_statement "local_40 = (local_54 - local_b8) + local_5c;" (assignment_expression "local_40 = (local_54 - local_b8) + local_5c" (identifier "local_40") (= "=") (binary_expression "(local_54 - local_b8) + local_5c" (parenthesized_expression "(local_54 - local_b8)" (( "(") (binary_expression "local_54 - local_b8" (identifier "local_54") (- "-") (identifier "local_b8")) () ")")) (+ "+") (identifier "local_5c"))) (; ";")) (if_statement "if (uVar22 < local_40) {\n                        uVar22 = local_40;\n                      }" (if "if") (parenthesized_expression "(uVar22 < local_40)" (( "(") (binary_expression "uVar22 < local_40" (identifier "uVar22") (< "<") (identifier "local_40")) () ")")) (compound_statement "{\n                        uVar22 = local_40;\n                      }" ({ "{") (expression_statement "uVar22 = local_40;" (assignment_expression "uVar22 = local_40" (identifier "uVar22") (= "=") (identifier "local_40")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)local_50 < (int)local_80) {\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }\n                    else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" (if "if") (parenthesized_expression "((int)local_50 < (int)local_80)" (( "(") (binary_expression "(int)local_50 < (int)local_80" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (< "<") (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80"))) () ")")) (compound_statement "{\n                      uVar16 = (local_80 - local_50) + uVar16;\n                      local_80 = local_50;\n                      local_8c = local_58;\n                      if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" ({ "{") (expression_statement "uVar16 = (local_80 - local_50) + uVar16;" (assignment_expression "uVar16 = (local_80 - local_50) + uVar16" (identifier "uVar16") (= "=") (binary_expression "(local_80 - local_50) + uVar16" (parenthesized_expression "(local_80 - local_50)" (( "(") (binary_expression "local_80 - local_50" (identifier "local_80") (- "-") (identifier "local_50")) () ")")) (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "local_80 = local_50;" (assignment_expression "local_80 = local_50" (identifier "local_80") (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_8c = local_58;" (assignment_expression "local_8c = local_58" (identifier "local_8c") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (local_58 <= uVar16) {\n                        local_8c = uVar16;\n                      }" (if "if") (parenthesized_expression "(local_58 <= uVar16)" (( "(") (binary_expression "local_58 <= uVar16" (identifier "local_58") (<= "<=") (identifier "uVar16")) () ")")) (compound_statement "{\n                        local_8c = uVar16;\n                      }" ({ "{") (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" (identifier "local_8c") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" (else "else") (compound_statement "{\n                      local_3c = (local_50 - local_80) + local_58;\n                      local_8c = local_3c;\n                      if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }\n                    }" ({ "{") (expression_statement "local_3c = (local_50 - local_80) + local_58;" (assignment_expression "local_3c = (local_50 - local_80) + local_58" (identifier "local_3c") (= "=") (binary_expression "(local_50 - local_80) + local_58" (parenthesized_expression "(local_50 - local_80)" (( "(") (binary_expression "local_50 - local_80" (identifier "local_50") (- "-") (identifier "local_80")) () ")")) (+ "+") (identifier "local_58"))) (; ";")) (expression_statement "local_8c = local_3c;" (assignment_expression "local_8c = local_3c" (identifier "local_8c") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (local_3c <= uVar16) {\n                        local_8c = uVar16;\n                      }" (if "if") (parenthesized_expression "(local_3c <= uVar16)" (( "(") (binary_expression "local_3c <= uVar16" (identifier "local_3c") (<= "<=") (identifier "uVar16")) () ")")) (compound_statement "{\n                        local_8c = uVar16;\n                      }" ({ "{") (expression_statement "local_8c = uVar16;" (assignment_expression "local_8c = uVar16" (identifier "local_8c") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (if_statement "if (-1 < (int)local_b8) {\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(-1 < (int)local_b8)" (( "(") (binary_expression "-1 < (int)local_b8" (number_literal "-1") (< "<") (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8"))) () ")")) (compound_statement "{\n                    if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }\n                    if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (*(int *)(iVar15 + 0x294) == 0) {\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar15 + 0x294) == 0)" (( "(") (binary_expression "*(int *)(iVar15 + 0x294) == 0" (pointer_expression "*(int *)(iVar15 + 0x294)" (* "*") (cast_expression "(int *)(iVar15 + 0x294)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x294)" (( "(") (binary_expression "iVar15 + 0x294" (identifier "iVar15") (+ "+") (number_literal "0x294")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      SetImageAlphaChannel(iVar15,0xb,param_2);\n                    }" ({ "{") (expression_statement "SetImageAlphaChannel(iVar15,0xb,param_2);" (call_expression "SetImageAlphaChannel(iVar15,0xb,param_2)" (identifier "SetImageAlphaChannel") (argument_list "(iVar15,0xb,param_2)" (( "(") (identifier "iVar15") (, ",") (number_literal "0xb") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if (0 < (int)local_8c) {\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" (if "if") (parenthesized_expression "(0 < (int)local_8c)" (( "(") (binary_expression "0 < (int)local_8c" (number_literal "0") (< "<") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) () ")")) (compound_statement "{\n                      local_d4 = local_80;\n                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }\n                    }" ({ "{") (expression_statement "local_d4 = local_80;" (assignment_expression "local_d4 = local_80" (identifier "local_d4") (= "=") (identifier "local_80")) (; ";")) (while_statement "while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0) {\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" (while "while") (parenthesized_expression "(iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0)" (( "(") (comma_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),\n                            iVar20 != 0" (assignment_expression "iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" (identifier "iVar20") (= "=") (call_expression "GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2)" (identifier "GetAuthenticPixels") (argument_list "(iVar15,local_b8,local_d4,uVar22,1,param_2)" (( "(") (identifier "iVar15") (, ",") (identifier "local_b8") (, ",") (identifier "local_d4") (, ",") (identifier "uVar22") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                        if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }\n                        iVar20 = SyncAuthenticPixels(iVar15,param_2);\n                        if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;\n                      }" ({ "{") (if_statement "if (0 < (int)uVar22) {\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }" (if "if") (parenthesized_expression "(0 < (int)uVar22)" (( "(") (binary_expression "0 < (int)uVar22" (number_literal "0") (< "<") (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22"))) () ")")) (compound_statement "{\n                          iVar14 = *(int *)(iVar15 + 0x298);\n                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }\n                        }" ({ "{") (expression_statement "iVar14 = *(int *)(iVar15 + 0x298);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x298)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar15 + 0x298)" (* "*") (cast_expression "(int *)(iVar15 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x298)" (( "(") (binary_expression "iVar15 + 0x298" (identifier "iVar15") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar15 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar15 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2a8)" (( "(") (binary_expression "iVar15 + 0x2a8" (identifier "iVar15") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);\n                            uVar16 = 0;\n                            do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);\n                          }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar15 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2a8)" (( "(") (binary_expression "iVar15 + 0x2a8" (identifier "iVar15") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            } while (uVar22 != uVar16);" (do "do") (compound_statement "{\n                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;\n                              uVar16 = uVar16 + 1;\n                              iVar20 = iVar20 + iVar14 * 8;\n                            }" ({ "{") (expression_statement "*(undefined8 *)(iVar20 + iVar2 * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar20 + iVar2 * 8) = 0" (pointer_expression "*(undefined8 *)(iVar20 + iVar2 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar20 + iVar2 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + iVar2 * 8)" (( "(") (binary_expression "iVar20 + iVar2 * 8" (identifier "iVar20") (+ "+") (binary_expression "iVar2 * 8" (identifier "iVar2") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar20 = iVar20 + iVar14 * 8;" (assignment_expression "iVar20 = iVar20 + iVar14 * 8" (identifier "iVar20") (= "=") (binary_expression "iVar20 + iVar14 * 8" (identifier "iVar20") (+ "+") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar22 != uVar16)" (( "(") (binary_expression "uVar22 != uVar16" (identifier "uVar22") (!= "!=") (identifier "uVar16")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar20 = SyncAuthenticPixels(iVar15,param_2);" (assignment_expression "iVar20 = SyncAuthenticPixels(iVar15,param_2)" (identifier "iVar20") (= "=") (call_expression "SyncAuthenticPixels(iVar15,param_2)" (identifier "SyncAuthenticPixels") (argument_list "(iVar15,param_2)" (( "(") (identifier "iVar15") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;" (if "if") (parenthesized_expression "((iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4))" (( "(") (binary_expression "(iVar20 == 0) ||\n                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)" (( "(") (comma_expression "local_d4 = local_d4 + 1, local_8c + local_80 == local_d4" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (, ",") (binary_expression "local_8c + local_80 == local_d4" (binary_expression "local_8c + local_80" (identifier "local_8c") (+ "+") (identifier "local_80")) (== "==") (identifier "local_d4"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_000fab80(4,param_2);" (call_expression "FUN_000fab80(4,param_2)" (identifier "FUN_000fab80") (argument_list "(4,param_2)" (( "(") (number_literal "4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "local_40 = local_5c;" (assignment_expression "local_40 = local_5c" (identifier "local_40") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_3c = local_58;" (assignment_expression "local_3c = local_58" (identifier "local_3c") (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_38 = local_54;" (assignment_expression "local_38 = local_54" (identifier "local_38") (= "=") (identifier "local_54")) (; ";")) (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" (identifier "local_34") (= "=") (identifier "local_50")) (; ";")) (} "}"))) (expression_statement "iVar14 = *local_c8;" (assignment_expression "iVar14 = *local_c8" (identifier "iVar14") (= "=") (pointer_expression "*local_c8" (* "*") (identifier "local_c8"))) (; ";")) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" (identifier "iVar20") (= "=") (identifier "iVar15")) (; ";")) (if_statement "if (local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" (if "if") (parenthesized_expression "(local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1])" (( "(") (binary_expression "local_3c * local_40 + local_8c * uVar22 <\n                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]" (binary_expression "local_3c * local_40 + local_8c * uVar22" (binary_expression "local_3c * local_40" (identifier "local_3c") (* "*") (identifier "local_40")) (+ "+") (binary_expression "local_8c * uVar22" (identifier "local_8c") (* "*") (identifier "uVar22"))) (< "<") (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]" (binary_expression "local_94 * local_98 + *puVar1 * puVar1[1]" (binary_expression "local_94 * local_98" (identifier "local_94") (* "*") (identifier "local_98")) (+ "+") (binary_expression "*puVar1 * puVar1[1]" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (* "*") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")))) (+ "+") (binary_expression "*puVar21 * puVar21[1]" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (* "*") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))))) () ")")) (compound_statement "{\n                  *puVar1 = uVar22;\n                  puVar1[1] = local_8c;\n                  puVar1[2] = local_b8;\n                  puVar1[3] = local_80;\n                  puVar21[1] = local_3c;\n                  *puVar21 = local_40;\n                  puVar21[2] = local_38;\n                  puVar21[3] = local_34;\n                  if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }\n                  iVar10 = DestroyImage(iVar10);\n                  *local_c8 = 2;\n                  if (iVar10 != 0) goto LAB_000fe9cd;\n                  local_a8 = DestroyImage(local_a8);\n                  if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }\n                  goto LAB_000fe9f5;\n                }" ({ "{") (expression_statement "*puVar1 = uVar22;" (assignment_expression "*puVar1 = uVar22" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar1[1] = local_8c;" (assignment_expression "puVar1[1] = local_8c" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "puVar1[2] = local_b8;" (assignment_expression "puVar1[2] = local_b8" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "puVar1[3] = local_80;" (assignment_expression "puVar1[3] = local_80" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_80")) (; ";")) (expression_statement "puVar21[1] = local_3c;" (assignment_expression "puVar21[1] = local_3c" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*puVar21 = local_40;" (assignment_expression "*puVar21 = local_40" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "puVar21[2] = local_38;" (assignment_expression "puVar21[2] = local_38" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar21[3] = local_34;" (assignment_expression "puVar21[3] = local_34" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_34")) (; ";")) (if_statement "if (iVar14 != 9) {\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" (if "if") (parenthesized_expression "(iVar14 != 9)" (( "(") (binary_expression "iVar14 != 9" (identifier "iVar14") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n                    *local_c8 = 2;\n                    goto LAB_000fe9cd;\n                  }" ({ "{") (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000fe9cd;" (goto "goto") (statement_identifier "LAB_000fe9cd") (; ";")) (} "}"))) (expression_statement "iVar10 = DestroyImage(iVar10);" (assignment_expression "iVar10 = DestroyImage(iVar10)" (identifier "iVar10") (= "=") (call_expression "DestroyImage(iVar10)" (identifier "DestroyImage") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "*local_c8 = 2;" (assignment_expression "*local_c8 = 2" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_000fe9cd;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fe9cd;" (goto "goto") (statement_identifier "LAB_000fe9cd") (; ";"))) (expression_statement "local_a8 = DestroyImage(local_a8);" (assignment_expression "local_a8 = DestroyImage(local_a8)" (identifier "local_a8") (= "=") (call_expression "DestroyImage(local_a8)" (identifier "DestroyImage") (argument_list "(local_a8)" (( "(") (identifier "local_a8") () ")")))) (; ";")) (if_statement "if (*local_c8 == 2) {\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }" (if "if") (parenthesized_expression "(*local_c8 == 2)" (( "(") (binary_expression "*local_c8 == 2" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                    iVar20 = 0;\n                    local_a8 = iVar15;\n                    goto LAB_000fee89;\n                  }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = iVar15;" (assignment_expression "local_a8 = iVar15" (identifier "local_a8") (= "=") (identifier "iVar15")) (; ";")) (goto_statement "goto LAB_000fee89;" (goto "goto") (statement_identifier "LAB_000fee89") (; ";")) (} "}"))) (goto_statement "goto LAB_000fe9f5;" (goto "goto") (statement_identifier "LAB_000fe9f5") (; ";")) (} "}"))) (if_statement "if (iVar14 != 9) goto LAB_000fe9cd;" (if "if") (parenthesized_expression "(iVar14 != 9)" (( "(") (binary_expression "iVar14 != 9" (identifier "iVar14") (!= "!=") (number_literal "9")) () ")")) (goto_statement "goto LAB_000fe9cd;" (goto "goto") (statement_identifier "LAB_000fe9cd") (; ";"))) (expression_statement "iVar20 = DestroyImage(iVar15);" (assignment_expression "iVar20 = DestroyImage(iVar15)" (identifier "iVar20") (= "=") (call_expression "DestroyImage(iVar15)" (identifier "DestroyImage") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";")) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" (identifier "DestroyImage") (argument_list "(local_a8)" (( "(") (identifier "local_a8") () ")"))) (; ";")) (expression_statement "puVar12[local_cc * 4 + 4] = *puVar21;" (assignment_expression "puVar12[local_cc * 4 + 4] = *puVar21" (subscript_expression "puVar12[local_cc * 4 + 4]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + 4" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "4")) (] "]")) (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "puVar12[local_cc * 4 + 5] = puVar21[1];" (assignment_expression "puVar12[local_cc * 4 + 5] = puVar21[1]" (subscript_expression "puVar12[local_cc * 4 + 5]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + 5" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "5")) (] "]")) (= "=") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar12[local_cc * 4 + 6] = puVar21[2];" (assignment_expression "puVar12[local_cc * 4 + 6] = puVar21[2]" (subscript_expression "puVar12[local_cc * 4 + 6]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + 6" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "6")) (] "]")) (= "=") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar12[local_cc * 4 + 7] = puVar21[3];" (assignment_expression "puVar12[local_cc * 4 + 7] = puVar21[3]" (subscript_expression "puVar12[local_cc * 4 + 7]" (identifier "puVar12") ([ "[") (binary_expression "local_cc * 4 + 7" (binary_expression "local_cc * 4" (identifier "local_cc") (* "*") (number_literal "4")) (+ "+") (number_literal "7")) (] "]")) (= "=") (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar21 = local_94;" (assignment_expression "*puVar21 = local_94" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "local_94")) (; ";")) (expression_statement "puVar21[1] = local_98;" (assignment_expression "puVar21[1] = local_98" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_98")) (; ";")) (expression_statement "puVar21[2] = uVar7;" (assignment_expression "puVar21[2] = uVar7" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar21[3] = uVar8;" (assignment_expression "puVar21[3] = uVar8" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*local_c8 = 9;" (assignment_expression "*local_c8 = 9" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (number_literal "9")) (; ";")) (expression_statement "puVar13[local_cc + 0x40000000] = 2;" (assignment_expression "puVar13[local_cc + 0x40000000] = 2" (subscript_expression "puVar13[local_cc + 0x40000000]" (identifier "puVar13") ([ "[") (binary_expression "local_cc + 0x40000000" (identifier "local_cc") (+ "+") (number_literal "0x40000000")) (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_a0 = local_cc + 0x40000000;" (assignment_expression "local_a0 = local_cc + 0x40000000" (identifier "local_a0") (= "=") (binary_expression "local_cc + 0x40000000" (identifier "local_cc") (+ "+") (number_literal "0x40000000"))) (; ";")) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" (identifier "local_cc") (= "=") (binary_expression "local_cc + 1" (identifier "local_cc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a8 = iVar10;" (assignment_expression "local_a8 = iVar10" (identifier "local_a8") (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000fee89:\n                local_c8 = puVar13 + local_a0;" (statement_identifier "LAB_000fee89") (: ":") (expression_statement "local_c8 = puVar13 + local_a0;" (assignment_expression "local_c8 = puVar13 + local_a0" (identifier "local_c8") (= "=") (binary_expression "puVar13 + local_a0" (identifier "puVar13") (+ "+") (identifier "local_a0"))) (; ";"))) (labeled_statement "LAB_000fea38:\n                puVar13[local_cc] = *local_c8;" (statement_identifier "LAB_000fea38") (: ":") (expression_statement "puVar13[local_cc] = *local_c8;" (assignment_expression "puVar13[local_cc] = *local_c8" (subscript_expression "puVar13[local_cc]" (identifier "puVar13") ([ "[") (identifier "local_cc") (] "]")) (= "=") (pointer_expression "*local_c8" (* "*") (identifier "local_c8"))) (; ";"))) (} "}")))) (expression_statement "local_cc = local_cc + 1;" (assignment_expression "local_cc = local_cc + 1" (identifier "local_cc") (= "=") (binary_expression "local_cc + 1" (identifier "local_cc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_d8 = GetNextImageInList(local_d8);" (assignment_expression "local_d8 = GetNextImageInList(local_d8)" (identifier "local_d8") (= "=") (call_expression "GetNextImageInList(local_d8)" (identifier "GetNextImageInList") (argument_list "(local_d8)" (( "(") (identifier "local_d8") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_d8 != 0)" (( "(") (binary_expression "local_d8 != 0" (identifier "local_d8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "DestroyImage(local_a8);" (call_expression "DestroyImage(local_a8)" (identifier "DestroyImage") (argument_list "(local_a8)" (( "(") (identifier "local_a8") () ")"))) (; ";")) (expression_statement "uVar24 = AcquireExceptionInfo();" (assignment_expression "uVar24 = AcquireExceptionInfo()" (identifier "uVar24") (= "=") (call_expression "AcquireExceptionInfo()" (identifier "AcquireExceptionInfo") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = GetFirstImageInList(param_1);" (assignment_expression "iVar10 = GetFirstImageInList(param_1)" (identifier "iVar10") (= "=") (call_expression "GetFirstImageInList(param_1)" (identifier "GetFirstImageInList") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_44 = NewImageList();" (assignment_expression "local_44 = NewImageList()" (identifier "local_44") (= "=") (call_expression "NewImageList()" (identifier "NewImageList") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "joined_r0x000ff4a8:\n          if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" (statement_identifier "joined_r0x000ff4a8") (: ":") (if_statement "if (iVar10 != 0) {\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );\n          }" ({ "{") (do_statement "do {\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            } while( true );" (do "do") (compound_statement "{\n              iVar20 = CloneImage(iVar10,0,0,1,param_2);\n              if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }\n              *(undefined4 *)(iVar20 + 0x84) = 4;\n              dVar6 = DAT_002df8d8;\n              piVar17 = puVar13 + local_d8;\n              if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }\n              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);\n              DestroyImage(iVar20);\n              if (iVar15 == 0) goto LAB_000ff7a7;\n              *(int *)(iVar15 + 0x240) = *piVar17;\n              if (*piVar17 != 9) goto code_r0x000ff534;\n              *(undefined4 *)(iVar15 + 0x248) = 0;\n              *(undefined4 *)(iVar15 + 0x240) = 1;\n              AppendImageToList(&local_44,iVar15);\n              local_d8 = local_d8 + 1;\n            }" ({ "{") (expression_statement "iVar20 = CloneImage(iVar10,0,0,1,param_2);" (assignment_expression "iVar20 = CloneImage(iVar10,0,0,1,param_2)" (identifier "iVar20") (= "=") (call_expression "CloneImage(iVar10,0,0,1,param_2)" (identifier "CloneImage") (argument_list "(iVar10,0,0,1,param_2)" (( "(") (identifier "iVar10") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar20 == 0) {\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);\n                RelinquishMagickMemory(puVar12);\n                RelinquishMagickMemory(puVar13);\n                uVar19 = 0;\n                DestroyImageList(local_44);\n                goto LAB_000fe7b4;\n              }" ({ "{") (labeled_statement "LAB_000ff7a7:\n                DestroyExceptionInfo(uVar24);" (statement_identifier "LAB_000ff7a7") (: ":") (expression_statement "DestroyExceptionInfo(uVar24);" (call_expression "DestroyExceptionInfo(uVar24)" (identifier "DestroyExceptionInfo") (argument_list "(uVar24)" (( "(") (identifier "uVar24") () ")"))) (; ";"))) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" (identifier "RelinquishMagickMemory") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "DestroyImageList(local_44);" (call_expression "DestroyImageList(local_44)" (identifier "DestroyImageList") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (goto_statement "goto LAB_000fe7b4;" (goto "goto") (statement_identifier "LAB_000fe7b4") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar20 + 0x84) = 4;" (assignment_expression "*(undefined4 *)(iVar20 + 0x84) = 4" (pointer_expression "*(undefined4 *)(iVar20 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x84)" (( "(") (binary_expression "iVar20 + 0x84" (identifier "iVar20") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" (identifier "dVar6") (= "=") (identifier "DAT_002df8d8")) (; ";")) (expression_statement "piVar17 = puVar13 + local_d8;" (assignment_expression "piVar17 = puVar13 + local_d8" (identifier "piVar17") (= "=") (binary_expression "puVar13 + local_d8" (identifier "puVar13") (+ "+") (identifier "local_d8"))) (; ";")) (if_statement "if (*piVar17 == 8) {\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }" (if "if") (parenthesized_expression "(*piVar17 == 8)" (( "(") (binary_expression "*piVar17 == 8" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                iVar15 = 0;\n                piVar9 = puVar13 + local_d8 + 1;\n                do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);\n                iVar14 = *(int *)(iVar10 + 0x248);\n                dVar3 = (double)*(int *)(iVar10 + 0x250);\n                dVar6 = DAT_002df8d8;\n                dVar4 = dVar3;\n                if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }\n                if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }\n                *(undefined4 *)(iVar20 + 0x250) = 100;\n                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));\n                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;\n              }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9 = puVar13 + local_d8 + 1;" (assignment_expression "piVar9 = puVar13 + local_d8 + 1" (identifier "piVar9") (= "=") (binary_expression "puVar13 + local_d8 + 1" (binary_expression "puVar13 + local_d8" (identifier "puVar13") (+ "+") (identifier "local_d8")) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                } while (*piVar17 == 8);" (do "do") (compound_statement "{\n                  piVar17 = piVar9;\n                  dVar4 = (double)*(int *)(iVar10 + 0x250);\n                  dVar3 = dVar6;\n                  dVar5 = dVar4;\n                  if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }\n                  if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }\n                  local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));\n                  iVar15 = iVar15 + (int)local_74;\n                  iVar10 = GetNextImageInList(iVar10);\n                  local_d8 = local_d8 + 1;\n                  piVar9 = piVar17 + 1;\n                }" ({ "{") (expression_statement "piVar17 = piVar9;" (assignment_expression "piVar17 = piVar9" (identifier "piVar17") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "dVar4 = (double)*(int *)(iVar10 + 0x250);" (assignment_expression "dVar4 = (double)*(int *)(iVar10 + 0x250)" (identifier "dVar4") (= "=") (cast_expression "(double)*(int *)(iVar10 + 0x250)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar10 + 0x250)" (* "*") (cast_expression "(int *)(iVar10 + 0x250)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x250)" (( "(") (binary_expression "iVar10 + 0x250" (identifier "iVar10") (+ "+") (number_literal "0x250")) () ")")))))) (; ";")) (expression_statement "dVar3 = dVar6;" (assignment_expression "dVar3 = dVar6" (identifier "dVar3") (= "=") (identifier "dVar6")) (; ";")) (expression_statement "dVar5 = dVar4;" (assignment_expression "dVar5 = dVar4" (identifier "dVar5") (= "=") (identifier "dVar4")) (; ";")) (if_statement "if (dVar4 < 0.0) {\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" (if "if") (parenthesized_expression "(dVar4 < 0.0)" (( "(") (binary_expression "dVar4 < 0.0" (identifier "dVar4") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                    dVar3 = DAT_002df8e0;\n                    dVar5 = -dVar4;\n                  }" ({ "{") (expression_statement "dVar3 = DAT_002df8e0;" (assignment_expression "dVar3 = DAT_002df8e0" (identifier "dVar3") (= "=") (identifier "DAT_002df8e0")) (; ";")) (expression_statement "dVar5 = -dVar4;" (assignment_expression "dVar5 = -dVar4" (identifier "dVar5") (= "=") (unary_expression "-dVar4" (- "-") (identifier "dVar4"))) (; ";")) (} "}"))) (if_statement "if (DAT_002df2d0 <= dVar5) {\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" (if "if") (parenthesized_expression "(DAT_002df2d0 <= dVar5)" (( "(") (binary_expression "DAT_002df2d0 <= dVar5" (identifier "DAT_002df2d0") (<= "<=") (identifier "dVar5")) () ")")) (compound_statement "{\n                    dVar3 = (double)DAT_002df8b4 / dVar4;\n                  }" ({ "{") (expression_statement "dVar3 = (double)DAT_002df8b4 / dVar4;" (assignment_expression "dVar3 = (double)DAT_002df8b4 / dVar4" (identifier "dVar3") (= "=") (binary_expression "(double)DAT_002df8b4 / dVar4" (cast_expression "(double)DAT_002df8b4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8b4")) (/ "/") (identifier "dVar4"))) (; ";")) (} "}"))) (expression_statement "local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));" (assignment_expression "local_74 = (longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" (identifier "local_74") (= "=") (cast_expression "(longlong)\n                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" (identifier "ROUND") (argument_list "(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000))" (( "(") (binary_expression "dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000)" (identifier "dVar3") (* "*") (cast_expression "(double)(uint)(*(int *)(iVar10 + 0x248) * 1000)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(uint)(*(int *)(iVar10 + 0x248) * 1000)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar10 + 0x248) * 1000)" (( "(") (binary_expression "*(int *)(iVar10 + 0x248) * 1000" (pointer_expression "*(int *)(iVar10 + 0x248)" (* "*") (cast_expression "(int *)(iVar10 + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x248)" (( "(") (binary_expression "iVar10 + 0x248" (identifier "iVar10") (+ "+") (number_literal "0x248")) () ")")))) (* "*") (number_literal "1000")) () ")"))))) () ")"))))) (; ";")) (expression_statement "iVar15 = iVar15 + (int)local_74;" (assignment_expression "iVar15 = iVar15 + (int)local_74" (identifier "iVar15") (= "=") (binary_expression "iVar15 + (int)local_74" (identifier "iVar15") (+ "+") (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")))) (; ";")) (expression_statement "iVar10 = GetNextImageInList(iVar10);" (assignment_expression "iVar10 = GetNextImageInList(iVar10)" (identifier "iVar10") (= "=") (call_expression "GetNextImageInList(iVar10)" (identifier "GetNextImageInList") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" (identifier "local_d8") (= "=") (binary_expression "local_d8 + 1" (identifier "local_d8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar9 = piVar17 + 1;" (assignment_expression "piVar9 = piVar17 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar17 + 1" (identifier "piVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar17 == 8)" (( "(") (binary_expression "*piVar17 == 8" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (== "==") (number_literal "8")) () ")")) (; ";")) (expression_statement "iVar14 = *(int *)(iVar10 + 0x248);" (assignment_expression "iVar14 = *(int *)(iVar10 + 0x248)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar10 + 0x248)" (* "*") (cast_expression "(int *)(iVar10 + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x248)" (( "(") (binary_expression "iVar10 + 0x248" (identifier "iVar10") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "dVar3 = (double)*(int *)(iVar10 + 0x250);" (assignment_expression "dVar3 = (double)*(int *)(iVar10 + 0x250)" (identifier "dVar3") (= "=") (cast_expression "(double)*(int *)(iVar10 + 0x250)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar10 + 0x250)" (* "*") (cast_expression "(int *)(iVar10 + 0x250)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x250)" (( "(") (binary_expression "iVar10 + 0x250" (identifier "iVar10") (+ "+") (number_literal "0x250")) () ")")))))) (; ";")) (expression_statement "dVar6 = DAT_002df8d8;" (assignment_expression "dVar6 = DAT_002df8d8" (identifier "dVar6") (= "=") (identifier "DAT_002df8d8")) (; ";")) (expression_statement "dVar4 = dVar3;" (assignment_expression "dVar4 = dVar3" (identifier "dVar4") (= "=") (identifier "dVar3")) (; ";")) (if_statement "if (dVar3 < 0.0) {\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" (if "if") (parenthesized_expression "(dVar3 < 0.0)" (( "(") (binary_expression "dVar3 < 0.0" (identifier "dVar3") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                  dVar6 = DAT_002df8e0;\n                  dVar4 = -dVar3;\n                }" ({ "{") (expression_statement "dVar6 = DAT_002df8e0;" (assignment_expression "dVar6 = DAT_002df8e0" (identifier "dVar6") (= "=") (identifier "DAT_002df8e0")) (; ";")) (expression_statement "dVar4 = -dVar3;" (assignment_expression "dVar4 = -dVar3" (identifier "dVar4") (= "=") (unary_expression "-dVar3" (- "-") (identifier "dVar3"))) (; ";")) (} "}"))) (if_statement "if (DAT_002df2d0 <= dVar4) {\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" (if "if") (parenthesized_expression "(DAT_002df2d0 <= dVar4)" (( "(") (binary_expression "DAT_002df2d0 <= dVar4" (identifier "DAT_002df2d0") (<= "<=") (identifier "dVar4")) () ")")) (compound_statement "{\n                  dVar6 = (double)DAT_002df8b4 / dVar3;\n                }" ({ "{") (expression_statement "dVar6 = (double)DAT_002df8b4 / dVar3;" (assignment_expression "dVar6 = (double)DAT_002df8b4 / dVar3" (identifier "dVar6") (= "=") (binary_expression "(double)DAT_002df8b4 / dVar3" (cast_expression "(double)DAT_002df8b4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8b4")) (/ "/") (identifier "dVar3"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar20 + 0x250) = 100;" (assignment_expression "*(undefined4 *)(iVar20 + 0x250) = 100" (pointer_expression "*(undefined4 *)(iVar20 + 0x250)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x250)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x250)" (( "(") (binary_expression "iVar20 + 0x250" (identifier "iVar20") (+ "+") (number_literal "0x250")) () ")")))) (= "=") (number_literal "100")) (; ";")) (expression_statement "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));" (assignment_expression "local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" (field_expression "local_74._0_4_" (identifier "local_74") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar6 * (double)(uint)(iVar14 * 1000))" (identifier "ROUND") (argument_list "(dVar6 * (double)(uint)(iVar14 * 1000))" (( "(") (binary_expression "dVar6 * (double)(uint)(iVar14 * 1000)" (identifier "dVar6") (* "*") (cast_expression "(double)(uint)(iVar14 * 1000)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(uint)(iVar14 * 1000)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 * 1000)" (( "(") (binary_expression "iVar14 * 1000" (identifier "iVar14") (* "*") (number_literal "1000")) () ")"))))) () ")")))))) (; ";")) (expression_statement "*(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;" (assignment_expression "*(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000" (pointer_expression "*(uint *)(iVar20 + 0x248)" (* "*") (cast_expression "(uint *)(iVar20 + 0x248)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x248)" (( "(") (binary_expression "iVar20 + 0x248" (identifier "iVar20") (+ "+") (number_literal "0x248")) () ")")))) (= "=") (binary_expression "(uint)(((int)local_74 + iVar15) * 100) / 1000" (call_expression "(uint)(((int)local_74 + iVar15) * 100)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int)local_74 + iVar15) * 100)" (( "(") (binary_expression "((int)local_74 + iVar15) * 100" (parenthesized_expression "((int)local_74 + iVar15)" (( "(") (binary_expression "(int)local_74 + iVar15" (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")) (+ "+") (identifier "iVar15")) () ")")) (* "*") (number_literal "100")) () ")"))) (/ "/") (number_literal "1000"))) (; ";")) (} "}"))) (expression_statement "iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);" (assignment_expression "iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24)" (identifier "iVar15") (= "=") (call_expression "CropImage(iVar20,puVar12 + local_d8 * 4,uVar24)" (identifier "CropImage") (argument_list "(iVar20,puVar12 + local_d8 * 4,uVar24)" (( "(") (identifier "iVar20") (, ",") (binary_expression "puVar12 + local_d8 * 4" (identifier "puVar12") (+ "+") (binary_expression "local_d8 * 4" (identifier "local_d8") (* "*") (number_literal "4"))) (, ",") (identifier "uVar24") () ")")))) (; ";")) (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" (identifier "DestroyImage") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")"))) (; ";")) (if_statement "if (iVar15 == 0) goto LAB_000ff7a7;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ff7a7;" (goto "goto") (statement_identifier "LAB_000ff7a7") (; ";"))) (expression_statement "*(int *)(iVar15 + 0x240) = *piVar17;" (assignment_expression "*(int *)(iVar15 + 0x240) = *piVar17" (pointer_expression "*(int *)(iVar15 + 0x240)" (* "*") (cast_expression "(int *)(iVar15 + 0x240)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x240)" (( "(") (binary_expression "iVar15 + 0x240" (identifier "iVar15") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (if_statement "if (*piVar17 != 9) goto code_r0x000ff534;" (if "if") (parenthesized_expression "(*piVar17 != 9)" (( "(") (binary_expression "*piVar17 != 9" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (!= "!=") (number_literal "9")) () ")")) (goto_statement "goto code_r0x000ff534;" (goto "goto") (statement_identifier "code_r0x000ff534") (; ";"))) (expression_statement "*(undefined4 *)(iVar15 + 0x248) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x248) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x248)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x248)" (( "(") (binary_expression "iVar15 + 0x248" (identifier "iVar15") (+ "+") (number_literal "0x248")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar15 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar15 + 0x240)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x240)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x240)" (( "(") (binary_expression "iVar15 + 0x240" (identifier "iVar15") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "AppendImageToList(&local_44,iVar15);" (call_expression "AppendImageToList(&local_44,iVar15)" (identifier "AppendImageToList") (argument_list "(&local_44,iVar15)" (( "(") (pointer_expression "&local_44" (& "&") (identifier "local_44")) (, ",") (identifier "iVar15") () ")"))) (; ";")) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" (identifier "local_d8") (= "=") (binary_expression "local_d8 + 1" (identifier "local_d8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (expression_statement "DestroyExceptionInfo(uVar24);" (call_expression "DestroyExceptionInfo(uVar24)" (identifier "DestroyExceptionInfo") (argument_list "(uVar24)" (( "(") (identifier "uVar24") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" (identifier "RelinquishMagickMemory") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "uVar19 = GetFirstImageInList(local_44);" (assignment_expression "uVar19 = GetFirstImageInList(local_44)" (identifier "uVar19") (= "=") (call_expression "GetFirstImageInList(local_44)" (identifier "GetFirstImageInList") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")")))) (; ";")) (goto_statement "goto LAB_000fe7b4;" (goto "goto") (statement_identifier "LAB_000fe7b4") (; ";")) (} "}"))) (labeled_statement "LAB_000ff84d:\n        uVar19 = 0;" (statement_identifier "LAB_000ff84d") (: ":") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";"))) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" (identifier "RelinquishMagickMemory") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (goto_statement "goto LAB_000fe7b4;" (goto "goto") (statement_identifier "LAB_000fe7b4") (; ";")) (} "}"))) (expression_statement "RelinquishMagickMemory(puVar12);" (call_expression "RelinquishMagickMemory(puVar12)" (identifier "RelinquishMagickMemory") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "pcVar26 = "MemoryAllocationFailed";" (assignment_expression "pcVar26 = "MemoryAllocationFailed"" (identifier "pcVar26") (= "=") (string_literal ""MemoryAllocationFailed"" (" """) (string_content "MemoryAllocationFailed") (" """))) (; ";")) (expression_statement "uVar25 = 400;" (assignment_expression "uVar25 = 400" (identifier "uVar25") (= "=") (number_literal "400")) (; ";")) (expression_statement "uVar24 = 0x3f4;" (assignment_expression "uVar24 = 0x3f4" (identifier "uVar24") (= "=") (number_literal "0x3f4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" (else "else") (compound_statement "{\n    iVar20 = *(int *)(iVar10 + 0x18);\n    if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }\n  }" ({ "{") (expression_statement "iVar20 = *(int *)(iVar10 + 0x18);" (assignment_expression "iVar20 = *(int *)(iVar10 + 0x18)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(iVar10 + 0x18)" (* "*") (cast_expression "(int *)(iVar10 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }\n    else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" (if "if") (parenthesized_expression "((iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c)))" (( "(") (binary_expression "(iVar20 == *(int *)(param_1 + 0x18)) &&\n       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))" (parenthesized_expression "(iVar20 == *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar20 == *(int *)(param_1 + 0x18)" (identifier "iVar20") (== "==") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))" (( "(") (comma_expression "iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c)" (assignment_expression "iVar15 = *(int *)(param_1 + 0x1c)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (binary_expression "iVar15 == *(int *)(iVar10 + 0x1c)" (identifier "iVar15") (== "==") (pointer_expression "*(int *)(iVar10 + 0x1c)" (* "*") (cast_expression "(int *)(iVar10 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x1c)" (( "(") (binary_expression "iVar10 + 0x1c" (identifier "iVar10") (+ "+") (number_literal "0x1c")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n      if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }\n      pcVar26 = "ImagePagesAreNotCoalesced";\n      uVar25 = 0x19a;\n      uVar24 = 0x3e3;\n    }" ({ "{") (if_statement "if ((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)))))" (( "(") (binary_expression "(*(int *)(iVar10 + 0x208) == 0) &&\n         ((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))" (parenthesized_expression "(*(int *)(iVar10 + 0x208) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x208) == 0" (pointer_expression "*(int *)(iVar10 + 0x208)" (* "*") (cast_expression "(int *)(iVar10 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x208)" (( "(") (binary_expression "iVar10 + 0x208" (identifier "iVar10") (+ "+") (number_literal "0x208")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))" (( "(") (parenthesized_expression "(*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)))" (( "(") (binary_expression "*(int *)(iVar10 + 0x20c) == 0 &&\n          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))" (binary_expression "*(int *)(iVar10 + 0x20c) == 0" (pointer_expression "*(int *)(iVar10 + 0x20c)" (* "*") (cast_expression "(int *)(iVar10 + 0x20c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20c)" (( "(") (binary_expression "iVar10 + 0x20c" (identifier "iVar10") (+ "+") (number_literal "0x20c")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))" (( "(") (comma_expression "iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200)" (assignment_expression "iVar14 = *(int *)(param_1 + 0x200)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_1 + 0x200)" (* "*") (cast_expression "(int *)(param_1 + 0x200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x200)" (( "(") (binary_expression "param_1 + 0x200" (identifier "param_1") (+ "+") (number_literal "0x200")) () ")"))))) (, ",") (binary_expression "iVar14 == *(int *)(iVar10 + 0x200)" (identifier "iVar14") (== "==") (pointer_expression "*(int *)(iVar10 + 0x200)" (* "*") (cast_expression "(int *)(iVar10 + 0x200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x200)" (( "(") (binary_expression "iVar10 + 0x200" (identifier "iVar10") (+ "+") (number_literal "0x200")) () ")")))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        iVar2 = *(int *)(param_1 + 0x204);\n        iVar11 = iVar10;\n        while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 0x204);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x204)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x204)" (* "*") (cast_expression "(int *)(param_1 + 0x204)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x204)" (( "(") (binary_expression "param_1 + 0x204" (identifier "param_1") (+ "+") (number_literal "0x204")) () ")"))))) (; ";")) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" (identifier "iVar11") (= "=") (identifier "iVar10")) (; ";")) (while_statement "while (*(int *)(iVar11 + 0x204) == iVar2) {\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }" (while "while") (parenthesized_expression "(*(int *)(iVar11 + 0x204) == iVar2)" (( "(") (binary_expression "*(int *)(iVar11 + 0x204) == iVar2" (pointer_expression "*(int *)(iVar11 + 0x204)" (* "*") (cast_expression "(int *)(iVar11 + 0x204)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x204)" (( "(") (binary_expression "iVar11 + 0x204" (identifier "iVar11") (+ "+") (number_literal "0x204")) () ")")))) (== "==") (identifier "iVar2")) () ")")) (compound_statement "{\n          iVar11 = GetNextImageInList(iVar11);\n          if (iVar11 == 0) goto LAB_000fe844;\n          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;\n          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;\n        }" ({ "{") (expression_statement "iVar11 = GetNextImageInList(iVar11);" (assignment_expression "iVar11 = GetNextImageInList(iVar11)" (identifier "iVar11") (= "=") (call_expression "GetNextImageInList(iVar11)" (identifier "GetNextImageInList") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_000fe844;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000fe844;" (goto "goto") (statement_identifier "LAB_000fe844") (; ";"))) (if_statement "if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))\n          goto LAB_000fe818;" (if "if") (parenthesized_expression "((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))" (( "(") (binary_expression "(*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15)" (parenthesized_expression "(*(int *)(iVar11 + 0x18) != iVar20)" (( "(") (binary_expression "*(int *)(iVar11 + 0x18) != iVar20" (pointer_expression "*(int *)(iVar11 + 0x18)" (* "*") (cast_expression "(int *)(iVar11 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "iVar20")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar11 + 0x1c) != iVar15)" (( "(") (binary_expression "*(int *)(iVar11 + 0x1c) != iVar15" (pointer_expression "*(int *)(iVar11 + 0x1c)" (* "*") (cast_expression "(int *)(iVar11 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (identifier "iVar15")) () ")"))) () ")")) (goto_statement "goto LAB_000fe818;" (goto "goto") (statement_identifier "LAB_000fe818") (; ";"))) (if_statement "if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)) break;" (if "if") (parenthesized_expression "(((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14))" (( "(") (binary_expression "((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||\n             (*(int *)(iVar11 + 0x200) != iVar14)" (parenthesized_expression "((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0))" (( "(") (binary_expression "(*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)" (parenthesized_expression "(*(int *)(iVar11 + 0x208) != 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0x208) != 0" (pointer_expression "*(int *)(iVar11 + 0x208)" (* "*") (cast_expression "(int *)(iVar11 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x208)" (( "(") (binary_expression "iVar11 + 0x208" (identifier "iVar11") (+ "+") (number_literal "0x208")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar11 + 0x20c) != 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0x20c) != 0" (pointer_expression "*(int *)(iVar11 + 0x20c)" (* "*") (cast_expression "(int *)(iVar11 + 0x20c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x20c)" (( "(") (binary_expression "iVar11 + 0x20c" (identifier "iVar11") (+ "+") (number_literal "0x20c")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar11 + 0x200) != iVar14)" (( "(") (binary_expression "*(int *)(iVar11 + 0x200) != iVar14" (pointer_expression "*(int *)(iVar11 + 0x200)" (* "*") (cast_expression "(int *)(iVar11 + 0x200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x200)" (( "(") (binary_expression "iVar11 + 0x200" (identifier "iVar11") (+ "+") (number_literal "0x200")) () ")")))) (!= "!=") (identifier "iVar14")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (expression_statement "pcVar26 = "ImagePagesAreNotCoalesced";" (assignment_expression "pcVar26 = "ImagePagesAreNotCoalesced"" (identifier "pcVar26") (= "=") (string_literal ""ImagePagesAreNotCoalesced"" (" """) (string_content "ImagePagesAreNotCoalesced") (" """))) (; ";")) (expression_statement "uVar25 = 0x19a;" (assignment_expression "uVar25 = 0x19a" (identifier "uVar25") (= "=") (number_literal "0x19a")) (; ";")) (expression_statement "uVar24 = 0x3e3;" (assignment_expression "uVar24 = 0x3e3" (identifier "uVar24") (= "=") (number_literal "0x3e3")) (; ";")) (} "}")) (else_clause "else {\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" (else "else") (compound_statement "{\nLAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";\n      uVar25 = 0x19a;\n      uVar24 = 0x3de;\n    }" ({ "{") (labeled_statement "LAB_000fe818:\n      pcVar26 = "ImagesAreNotTheSameSize";" (statement_identifier "LAB_000fe818") (: ":") (expression_statement "pcVar26 = "ImagesAreNotTheSameSize";" (assignment_expression "pcVar26 = "ImagesAreNotTheSameSize"" (identifier "pcVar26") (= "=") (string_literal ""ImagesAreNotTheSameSize"" (" """) (string_content "ImagesAreNotTheSameSize") (" """))) (; ";"))) (expression_statement "uVar25 = 0x19a;" (assignment_expression "uVar25 = 0x19a" (identifier "uVar25") (= "=") (number_literal "0x19a")) (; ";")) (expression_statement "uVar24 = 0x3de;" (assignment_expression "uVar24 = 0x3de" (identifier "uVar24") (= "=") (number_literal "0x3de")) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318);" (call_expression "ThrowMagickException\n            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318)" (identifier "ThrowMagickException") (argument_list "(param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",\n             param_1 + 0x318)" (( "(") (identifier "param_2") (, ",") (string_literal ""MagickCore/layer.c"" (" """) (string_content "MagickCore/layer.c") (" """)) (, ",") (string_literal ""OptimizeLayerFrames"" (" """) (string_content "OptimizeLayerFrames") (" """)) (, ",") (identifier "uVar24") (, ",") (identifier "uVar25") (, ",") (identifier "pcVar26") (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (labeled_statement "LAB_000fe7b4:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" (statement_identifier "LAB_000fe7b4") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\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    return uVar19;\n  }" ({ "{") (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}")))) (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" (identifier "FUN_002decd0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x000ff534:\n  iVar10 = GetNextImageInList(iVar10);" (statement_identifier "code_r0x000ff534") (: ":") (expression_statement "iVar10 = GetNextImageInList(iVar10);" (assignment_expression "iVar10 = GetNextImageInList(iVar10)" (identifier "iVar10") (= "=") (call_expression "GetNextImageInList(iVar10)" (identifier "GetNextImageInList") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";"))) (expression_statement "AppendImageToList(&local_44,iVar15);" (call_expression "AppendImageToList(&local_44,iVar15)" (identifier "AppendImageToList") (argument_list "(&local_44,iVar15)" (( "(") (pointer_expression "&local_44" (& "&") (identifier "local_44")) (, ",") (identifier "iVar15") () ")"))) (; ";")) (expression_statement "local_d8 = local_d8 + 1;" (assignment_expression "local_d8 = local_d8 + 1" (identifier "local_d8") (= "=") (binary_expression "local_d8 + 1" (identifier "local_d8") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto joined_r0x000ff4a8;" (goto "goto") (statement_identifier "joined_r0x000ff4a8") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 * function_1(type_1 *var_2,type_2 *var_6)

{
  type_3 *puVar1;
  size_t var_34;
  double var_58;
  double var_54;
  double var_56;
  double var_60;
  ssize_t x;
  ssize_t var_39;
  type_4 *pDVar8;
  type_1 *var_8;
  type_3 *var_11;
  type_5 *var_12;
  type_6 var_27;
  type_1 *var_22;
  type_7 *var_32;
  type_2 *exception_00;
  type_3 var_42;
  type_4 *var_59;
  size_t var_33;
  type_3 var_40;
  size_t var_38;
  type_1 *var_51;
  type_1 *var_23;
  int var_21;
  type_3 *puVar20;
  type_3 var_41;
  int var_1;
  bool bVar21;
  size_t var_35;
  type_8 severity;
  char *tag;
  type_2 *in_stack_ffffff1c;
  type_2 *in_stack_ffffff20;
  type_1 *var_18;
  type_3 var_37;
  int var_19;
  int *local_c8;
  type_3 var_44;
  type_1 *var_14;
  int var_48;
  type_3 var_47;
  type_3 var_46;
  type_6 var_26;
  type_3 var_45;
  type_3 var_43;
  type_9 local_74;
  type_10 local_5c;
  type_1 *optimized_image;
  type_10 try_bounds;
  type_10 local_30;
  int var_64;
  type_5 uStack_14;
  
  uStack_14 = 0xfe649;
  var_64 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,
                  "OptimizeLayerFrames");
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,"%s",var_2->filename)
    ;
  }
  if (var_6 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,
                  "OptimizeLayerFrames");
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,
                  "OptimizeLayerFrames");
  }
  var_8 = var_7(var_2);
  if (var_8 == (type_1 *)0x0) {
LAB_000fe844:
    var_35 = var_9(var_8);
    var_11 = (type_3 *)var_10(var_35,0x20);
    if (var_11 == (type_3 *)0x0) {
      tag = "MemoryAllocationFailed";
      severity = ErrorException;
      var_35 = 0x3ed;
    }
    else {
      var_35 = var_9(var_2);
      var_12 = (type_5 *)var_10(var_35,8);
      if (var_12 != (type_5 *)0x0) {
        var_14 = var_13(var_8,var_8->var_41,var_8->rows,MagickTrue,var_6);
        if (var_14 != (type_1 *)0x0) {
          (var_14->page).width = (var_8->page).width;
          var_35 = (var_8->page).height;
          (var_14->background_color).alpha = 0.0;
          (var_14->page).x = 0;
          (var_14->page).y = 0;
          (var_14->page).height = var_35;
          var_14->dispose = NoneDispose;
          (var_14->background_color).alpha_trait = BlendPixelTrait;
          var_51 = (type_1 *)var_6;
          var_15(var_14,var_6);
          *var_12 = 1;
          var_16(&local_5c,var_14,var_8,(type_11)var_6,
                              (type_2 *)var_51);
          *var_11 = local_5c.width;
          var_11[1] = local_5c.height;
          var_11[2] = local_5c.x;
          var_11[3] = local_5c.y;
          var_18 = var_17(var_8);
          if (var_18 != (type_1 *)0x0) {
            var_23 = (type_1 *)0x0;
            var_19 = 1;
            var_8 = (type_1 *)0x0;
            do {
              puVar20 = var_11 + var_19 * 4;
              var_16(&local_5c,var_18->previous,var_18,(type_11)var_6,
                                  (type_2 *)var_51);
              *puVar20 = local_5c.width;
              puVar20[1] = local_5c.height;
              puVar20[2] = local_5c.x;
              puVar20[3] = local_5c.y;
              if (local_5c.x < 0) {
                local_c8 = var_12 + var_19 + 0x3fffffff;
                *local_c8 = 1;
LAB_000fe9b6:
                if (var_19 == 1) {
                  var_22 = var_23;
                  if (var_8 == (type_1 *)0x0) {
LAB_000fef38:
                    var_14 = var_20(var_14);
                    var_21 = *local_c8;
                    if (var_21 != 2) {
                      var_23 = var_22;
                      if (var_22 != (type_1 *)0x0) goto LAB_000fe9f5;
                      goto LAB_000fea09;
                    }
                    var_23 = (type_1 *)0x0;
                    var_14 = var_22;
LAB_000fef60:
                    var_48 = var_19 + 0x3fffffff;
                    if (var_14 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
                      var_3("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,
                                    "OptimizeLayerFrames");
                    }
                    goto LAB_000fee89;
                  }
LAB_000fe9cd:
                  var_48 = var_19 + 0x3fffffff;
                  var_8 = var_20(var_8);
                  var_22 = var_23;
                  if (*local_c8 != 3) goto LAB_000fef38;
                  if (var_23 == (type_1 *)0x0) goto LAB_000fee89;
LAB_000fe9f5:
                  var_23 = var_20(var_22);
                  var_21 = *local_c8;
LAB_000fea09:
                  if (var_21 != 1) goto LAB_000fef60;
                  var_14 = var_24(var_18->previous);
                  if (var_14 != (type_1 *)0x0) goto LAB_000fea38;
                  goto LAB_000ff84d;
                }
                *local_c8 = 8;
                var_12[var_19 + 0x40000000] = 1;
                *puVar20 = var_11[var_19 * 4 + -4];
                puVar20[1] = var_11[var_19 * 4 + -3];
                puVar20[2] = var_11[var_19 * 4 + -2];
                puVar20[3] = var_11[var_19 * 4 + -1];
              }
              else {
                var_27 = var_25((type_1 *)var_6,var_51,
                                         (type_10 *)in_stack_ffffff1c,in_stack_ffffff20);
                var_42 = puVar20[2];
                local_c8 = var_12 + var_19 + 0x3fffffff;
                *local_c8 = 1;
                if ((int)var_42 < 0) goto LAB_000fe9b6;
                var_16(&local_5c,var_14,var_18,(type_11)var_6,
                                    (type_2 *)var_51);
                try_bounds.width = local_5c.width;
                try_bounds.y = local_5c.y;
                try_bounds.height = local_5c.height;
                try_bounds.x = local_5c.x;
                if (local_5c.x < 0) {
                  bVar21 = true;
                  var_26 = var_4;
                }
                else {
                  var_26 = var_25((type_1 *)var_6,var_51,
                                             (type_10 *)in_stack_ffffff1c,in_stack_ffffff20);
                  bVar21 = var_26 == var_4;
                }
                var_48 = var_19 + 0x3fffffff;
                if (((var_27 != var_4) && (bVar21)) ||
                   (try_bounds.width * try_bounds.height < *puVar20 * puVar20[1])) {
                  *puVar20 = try_bounds.width;
                  puVar20[1] = try_bounds.height;
                  puVar20[2] = try_bounds.x;
                  puVar20[3] = try_bounds.y;
                  *local_c8 = 3;
                  var_27 = var_26;
                }
                var_26 = var_27;
                var_8 = var_13(var_18->previous,0,0,MagickTrue,var_6);
                if (var_8 == (type_1 *)0x0) {
                  var_28(var_11);
                  var_28(var_12);
                  var_20(var_14);
                  var_51 = (type_1 *)0x0;
                  goto LAB_000fe7b4;
                }
                (var_8->background_color).alpha_trait = BlendPixelTrait;
                var_51 = (type_1 *)var_6;
                var_16(&local_30,var_8,var_18,CompareClearLayer,var_6);
                var_39 = local_30.y;
                x = local_30.x;
                var_38 = local_30.height;
                var_35 = local_30.width;
                var_46 = local_30.width;
                var_47 = local_30.height;
                if (-1 < local_30.x) {
                  if (var_8->alpha_trait == var_29) {
                    var_51 = (type_1 *)0xb;
                    in_stack_ffffff1c = var_6;
                    var_30(var_8,OpaqueAlphaChannel,var_6);
                  }
                  if (0 < (int)var_38) {
                    var_37 = var_39;
                    while (var_51 = (type_1 *)var_6,
                          var_32 = var_31(var_8,x,var_37,var_35,1,var_6),
                          var_32 != (type_7 *)0x0) {
                      if (0 < (int)var_35) {
                        var_34 = var_8->number_channels;
                        if (var_8->channel_map[4].traits != var_29) {
                          var_21 = var_8->channel_map[4].offset;
                          var_33 = 0;
                          do {
                            var_32[var_21] = 0.0;
                            var_33 = var_33 + 1;
                            var_32 = var_32 + var_34;
                          } while (var_33 != var_35);
                        }
                      }
                      var_51 = (type_1 *)var_6;
                      var_27 = var_36(var_8,var_6);
                      if ((var_27 == var_4) ||
                         (var_37 = var_37 + 1, var_38 + var_39 == var_37)) break;
                    }
                  }
                }
                var_16(&local_5c,var_8,var_18,(type_11)var_6,
                                    (type_2 *)var_51);
                try_bounds.height = local_5c.height;
                try_bounds.width = local_5c.width;
                try_bounds.x = local_5c.x;
                try_bounds.y = local_5c.y;
                if ((var_26 == var_4) &&
                   (*puVar20 * puVar20[1] <= local_5c.width * local_5c.height + var_35 * var_38)) {
                  var_47 = 0;
                  var_46 = 0;
                }
                else {
                  *puVar20 = local_5c.width;
                  puVar20[1] = local_5c.height;
                  puVar20[2] = local_5c.x;
                  puVar20[3] = local_5c.y;
                  *local_c8 = 9;
                }
                var_22 = var_13(var_18->previous,0,0,MagickTrue,var_6);
                if (var_22 == (type_1 *)0x0) {
                  var_28(var_11);
                  var_28(var_12);
                  var_20(var_14);
                  var_51 = (type_1 *)0x0;
                  var_20(var_8);
                  goto LAB_000fe7b4;
                }
                (var_22->background_color).alpha_trait = BlendPixelTrait;
                puVar1 = var_11 + var_19 * 4 + -4;
                var_42 = puVar1[1];
                var_41 = *puVar1;
                var_44 = puVar1[2];
                var_43 = puVar1[3];
                if (-1 < (int)var_44) {
                  if (var_22->alpha_trait == var_29) {
                    var_51 = (type_1 *)0xb;
                    in_stack_ffffff1c = var_6;
                    var_30(var_22,OpaqueAlphaChannel,var_6);
                  }
                  if (0 < (int)var_42) {
                    var_37 = var_43;
                    while (var_51 = (type_1 *)var_6,
                          var_32 = var_31(var_22,var_44,var_37,var_41,1,
                                                       var_6), var_32 != (type_7 *)0x0) {
                      if (0 < (int)var_41) {
                        var_35 = var_22->number_channels;
                        if (var_22->channel_map[4].traits != var_29) {
                          var_21 = var_22->channel_map[4].offset;
                          var_40 = 0;
                          do {
                            var_32[var_21] = 0.0;
                            var_40 = var_40 + 1;
                            var_32 = var_32 + var_35;
                          } while (var_40 != var_41);
                        }
                      }
                      var_51 = (type_1 *)var_6;
                      var_27 = var_36(var_22,var_6);
                      if ((var_27 == var_4) ||
                         (var_37 = var_37 + 1, var_37 == var_42 + var_43)) break;
                    }
                  }
                }
                var_16(&local_5c,var_22,var_18,(type_11)var_6,
                                    (type_2 *)var_51);
                try_bounds.width = local_5c.width;
                try_bounds.y = local_5c.y;
                try_bounds.height = local_5c.height;
                try_bounds.x = local_5c.x;
                var_45 = var_42;
                if ((-1 < local_5c.x) &&
                   (var_27 = var_25((type_1 *)var_6,var_51,
                                             (type_10 *)in_stack_ffffff1c,in_stack_ffffff20),
                   var_27 != var_4)) {
                  var_16(&local_5c,var_18->previous,var_18,CompareClearLayer,
                                      var_6);
                  try_bounds.height = local_5c.height;
                  try_bounds.width = local_5c.width;
                  try_bounds.y = local_5c.y;
                  try_bounds.x = local_5c.x;
                  if ((int)var_44 < 0) {
                    var_45 = local_5c.height;
                    var_41 = local_5c.width;
                    var_44 = local_5c.x;
                    var_43 = local_5c.y;
                  }
                  else {
                    if (local_5c.x < (int)var_44) {
                      var_21 = var_44 - local_5c.x;
                      var_44 = local_5c.x;
                      var_40 = var_21 + var_41;
                      var_41 = local_5c.width;
                      if (local_5c.width <= var_40) {
                        var_41 = var_40;
                      }
                    }
                    else {
                      try_bounds.width = (local_5c.x - var_44) + local_5c.width;
                      if (var_41 < try_bounds.width) {
                        var_41 = try_bounds.width;
                      }
                    }
                    if (local_5c.y < (int)var_43) {
                      var_42 = (var_43 - local_5c.y) + var_42;
                      var_43 = local_5c.y;
                      var_45 = local_5c.height;
                      if (local_5c.height <= var_42) {
                        var_45 = var_42;
                      }
                    }
                    else {
                      try_bounds.height = (local_5c.y - var_43) + local_5c.height;
                      var_45 = try_bounds.height;
                      if (try_bounds.height <= var_42) {
                        var_45 = var_42;
                      }
                    }
                  }
                  if (-1 < (int)var_44) {
                    if (var_22->alpha_trait == var_29) {
                      in_stack_ffffff1c = var_6;
                      var_30(var_22,OpaqueAlphaChannel,var_6);
                    }
                    if (0 < (int)var_45) {
                      var_37 = var_43;
                      while (var_32 = var_31(var_22,var_44,var_37,var_41,1,
                                                          var_6), var_32 != (type_7 *)0x0) {
                        if (0 < (int)var_41) {
                          var_35 = var_22->number_channels;
                          if (var_22->channel_map[4].traits != var_29) {
                            var_21 = var_22->channel_map[4].offset;
                            var_38 = 0;
                            do {
                              var_32[var_21] = 0.0;
                              var_38 = var_38 + 1;
                              var_32 = var_32 + var_35;
                            } while (var_41 != var_38);
                          }
                        }
                        var_27 = var_36(var_22,var_6);
                        if ((var_27 == var_4) ||
                           (var_37 = var_37 + 1, var_45 + var_43 == var_37)) break;
                      }
                    }
                  }
                  var_51 = (type_1 *)var_6;
                  var_16(&local_5c,var_22,var_18,CompareOverlayLayer,var_6);
                  try_bounds.width = local_5c.width;
                  try_bounds.height = local_5c.height;
                  try_bounds.x = local_5c.x;
                  try_bounds.y = local_5c.y;
                }
                var_21 = *local_c8;
                var_23 = var_22;
                if (try_bounds.height * try_bounds.width + var_45 * var_41 <
                    var_46 * var_47 + *puVar1 * puVar1[1] + *puVar20 * puVar20[1]) {
                  *puVar1 = var_41;
                  puVar1[1] = var_45;
                  puVar1[2] = var_44;
                  puVar1[3] = var_43;
                  puVar20[1] = try_bounds.height;
                  *puVar20 = try_bounds.width;
                  puVar20[2] = try_bounds.x;
                  puVar20[3] = try_bounds.y;
                  if (var_21 != 9) {
                    *local_c8 = 2;
                    goto LAB_000fe9cd;
                  }
                  var_8 = var_20(var_8);
                  *local_c8 = 2;
                  if (var_8 != (type_1 *)0x0) goto LAB_000fe9cd;
                  var_14 = var_20(var_14);
                  if (*local_c8 == 2) {
                    var_23 = (type_1 *)0x0;
                    var_14 = var_22;
                    goto LAB_000fee89;
                  }
                  goto LAB_000fe9f5;
                }
                if (var_21 != 9) goto LAB_000fe9cd;
                var_23 = var_20(var_22);
                var_20(var_14);
                var_11[var_19 * 4 + 4] = *puVar20;
                var_11[var_19 * 4 + 5] = puVar20[1];
                var_11[var_19 * 4 + 6] = puVar20[2];
                var_11[var_19 * 4 + 7] = puVar20[3];
                *puVar20 = var_46;
                puVar20[1] = var_47;
                puVar20[2] = x;
                puVar20[3] = var_39;
                *local_c8 = 9;
                var_12[var_19 + 0x40000000] = 2;
                var_48 = var_19 + 0x40000000;
                var_19 = var_19 + 1;
                var_14 = var_8;
                var_8 = (type_1 *)0x0;
LAB_000fee89:
                local_c8 = var_12 + var_48;
LAB_000fea38:
                var_12[var_19] = *local_c8;
              }
              var_19 = var_19 + 1;
              var_18 = var_17(var_18);
            } while (var_18 != (type_1 *)0x0);
          }
          var_20(var_14);
          exception_00 = var_49();
          var_8 = var_7(var_2);
          optimized_image = var_50();
          var_18 = (type_1 *)0x0;
joined_r0x000ff4a8:
          if (var_8 != (type_1 *)0x0) {
            do {
              var_51 = var_13(var_8,0,0,MagickTrue,var_6);
              if (var_51 == (type_1 *)0x0) {
LAB_000ff7a7:
                var_52(exception_00);
                var_28(var_11);
                var_28(var_12);
                var_51 = (type_1 *)0x0;
                var_53(optimized_image);
                goto LAB_000fe7b4;
              }
              (var_51->background_color).alpha_trait = BlendPixelTrait;
              var_60 = DAT_002df8d8;
              var_59 = var_12 + (int)var_18;
              if (*var_59 == 8) {
                var_21 = 0;
                pDVar8 = var_12 + (int)var_18 + 1;
                do {
                  var_59 = pDVar8;
                  var_54 = (double)var_8->ticks_per_second;
                  var_58 = var_60;
                  var_56 = var_54;
                  if (var_54 < 0.0) {
                    var_58 = DAT_002df8e0;
                    var_56 = -var_54;
                  }
                  if (var_55 <= var_56) {
                    var_58 = (double)DAT_002df8b4 / var_54;
                  }
                  local_74 = (type_9)var_57(var_58 * (double)(var_8->delay * 1000));
                  var_21 = var_21 + (int)local_74;
                  var_8 = var_17(var_8);
                  var_18 = (type_1 *)((int)var_18 + 1);
                  pDVar8 = var_59 + 1;
                } while (*var_59 == 8);
                var_35 = var_8->delay;
                var_58 = (double)var_8->ticks_per_second;
                var_60 = DAT_002df8d8;
                var_54 = var_58;
                if (var_58 < 0.0) {
                  var_60 = DAT_002df8e0;
                  var_54 = -var_58;
                }
                if (var_55 <= var_54) {
                  var_60 = (double)DAT_002df8b4 / var_58;
                }
                var_51->ticks_per_second = 100;
                local_74._0_4_ = (int)(type_9)var_57(var_60 * (double)(var_35 * 1000));
                var_51->delay = (type_3)(((int)local_74 + var_21) * 100) / 1000;
              }
              var_23 = var_61(var_51,(type_10 *)(var_11 + (int)var_18 * 4),exception_00
                                 );
              var_20(var_51);
              if (var_23 == (type_1 *)0x0) goto LAB_000ff7a7;
              var_23->dispose = *var_59;
              if (*var_59 != 9) goto code_r0x000ff534;
              var_23->delay = 0;
              var_23->dispose = NoneDispose;
              var_62(&optimized_image,var_23);
              var_18 = (type_1 *)((int)var_18 + 1);
            } while( true );
          }
          var_52(exception_00);
          var_28(var_11);
          var_28(var_12);
          var_51 = var_7(optimized_image);
          goto LAB_000fe7b4;
        }
LAB_000ff84d:
        var_51 = (type_1 *)0x0;
        var_28(var_11);
        var_28(var_12);
        goto LAB_000fe7b4;
      }
      var_28(var_11);
      tag = "MemoryAllocationFailed";
      severity = ErrorException;
      var_35 = 0x3f4;
    }
  }
  else {
    var_35 = var_8->var_41;
    if ((var_35 == var_2->var_41) && (var_38 = var_2->rows, var_38 == var_8->rows)) {
      if (((var_8->page).x == 0) &&
         (((var_8->page).y == 0 && (var_34 = (var_2->page).width, var_34 == (var_8->page).width))))
      {
        var_33 = (var_2->page).height;
        var_51 = var_8;
        while ((var_51->page).height == var_33) {
          var_51 = var_17(var_51);
          if (var_51 == (type_1 *)0x0) goto LAB_000fe844;
          if ((var_51->var_41 != var_35) || (var_51->rows != var_38)) goto LAB_000fe818;
          if ((((var_51->page).x != 0) || ((var_51->page).y != 0)) ||
             ((var_51->page).width != var_34)) break;
        }
      }
      tag = "ImagePagesAreNotCoalesced";
      severity = OptionError;
      var_35 = 0x3e3;
    }
    else {
LAB_000fe818:
      tag = "ImagesAreNotTheSameSize";
      severity = OptionError;
      var_35 = 0x3de;
    }
  }
  var_51 = (type_1 *)0x0;
  var_63
            (var_6,"MagickCore/layer.c","OptimizeLayerFrames",var_35,severity,tag,"`%s\'",
             var_2->filename);
LAB_000fe7b4:
  if (var_64 == *(int *)(var_1 + 0x14)) {
    return var_51;
  }
                    /* WARNING: Subroutine does not return */
  var_65();
code_r0x000ff534:
  var_8 = var_17(var_8);
  var_62(&optimized_image,var_23);
  var_18 = (type_1 *)((int)var_18 + 1);
  goto joined_r0x000ff4a8;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(int param_1,int param_2)

{
  uint *puVar1;
  int iVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  uint uVar7;
  uint uVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  uint *puVar12;
  undefined4 *puVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int *piVar17;
  uint uVar18;
  undefined4 uVar19;
  int iVar20;
  uint *puVar21;
  uint uVar22;
  int in_GS_OFFSET;
  bool bVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  char *pcVar26;
  int local_d8;
  uint local_d4;
  int local_cc;
  int *local_c8;
  uint local_b8;
  int local_a8;
  int local_a0;
  uint local_98;
  uint local_94;
  int local_90;
  uint local_8c;
  uint local_80;
  longlong local_74;
  uint local_5c;
  uint local_58;
  uint local_54;
  uint local_50;
  undefined4 local_44;
  uint local_40;
  uint local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xfe649;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (const Image *) NULL","MagickCore/layer.c",0x3ca,"OptimizeLayerFrames");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/layer.c",0x3cb,
                  "OptimizeLayerFrames");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/layer.c","OptimizeLayerFrames",0x3cd,&DAT_002f75ae,
                   param_1 + 0x318);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/layer.c",0x3ce,
                  "OptimizeLayerFrames");
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","MagickCore/layer.c",0x3cf,
                  "OptimizeLayerFrames");
  }
  iVar10 = GetFirstImageInList(param_1);
  if (iVar10 == 0) {
LAB_000fe844:
    uVar24 = GetImageListLength(iVar10);
    puVar12 = (uint *)AcquireQuantumMemory(uVar24,0x20);
    if (puVar12 == (uint *)0x0) {
      pcVar26 = "MemoryAllocationFailed";
      uVar25 = 400;
      uVar24 = 0x3ed;
    }
    else {
      uVar24 = GetImageListLength(param_1);
      puVar13 = (undefined4 *)AcquireQuantumMemory(uVar24,8);
      if (puVar13 != (undefined4 *)0x0) {
        local_a8 = CloneImage(iVar10,*(undefined4 *)(iVar10 + 0x18),*(undefined4 *)(iVar10 + 0x1c),1
                              ,param_2);
        if (local_a8 != 0) {
          *(undefined4 *)(local_a8 + 0x200) = *(undefined4 *)(iVar10 + 0x200);
          uVar24 = *(undefined4 *)(iVar10 + 0x204);
          *(undefined8 *)(local_a8 + 0xbc) = 0;
          *(undefined4 *)(local_a8 + 0x208) = 0;
          *(undefined4 *)(local_a8 + 0x20c) = 0;
          *(undefined4 *)(local_a8 + 0x204) = uVar24;
          *(undefined4 *)(local_a8 + 0x240) = 1;
          *(undefined4 *)(local_a8 + 0x84) = 4;
          SetImageBackgroundColor(local_a8,param_2);
          *puVar13 = 1;
          FUN_000fba40(param_2);
          *puVar12 = local_5c;
          puVar12[1] = local_58;
          puVar12[2] = local_54;
          puVar12[3] = local_50;
          local_d8 = GetNextImageInList(iVar10);
          if (local_d8 != 0) {
            iVar20 = 0;
            local_cc = 1;
            iVar10 = 0;
            do {
              puVar21 = puVar12 + local_cc * 4;
              FUN_000fba40(param_2);
              *puVar21 = local_5c;
              puVar21[1] = local_58;
              puVar21[2] = local_54;
              puVar21[3] = local_50;
              if ((int)local_54 < 0) {
                local_c8 = puVar13 + local_cc + 0x3fffffff;
                *local_c8 = 1;
LAB_000fe9b6:
                if (local_cc == 1) {
                  iVar15 = iVar20;
                  if (iVar10 == 0) {
LAB_000fef38:
                    local_a8 = DestroyImage(local_a8);
                    iVar14 = *local_c8;
                    if (iVar14 != 2) {
                      iVar20 = iVar15;
                      if (iVar15 != 0) goto LAB_000fe9f5;
                      goto LAB_000fea09;
                    }
                    iVar20 = 0;
                    local_a8 = iVar15;
LAB_000fef60:
                    local_a0 = local_cc + 0x3fffffff;
                    if (local_a8 == 0) {
                    /* WARNING: Subroutine does not return */
                      __assert_fail("prev_image != (Image *) NULL","MagickCore/layer.c",0x527,
                                    "OptimizeLayerFrames");
                    }
                    goto LAB_000fee89;
                  }
LAB_000fe9cd:
                  local_a0 = local_cc + 0x3fffffff;
                  iVar10 = DestroyImage(iVar10);
                  iVar15 = iVar20;
                  if (*local_c8 != 3) goto LAB_000fef38;
                  if (iVar20 == 0) goto LAB_000fee89;
LAB_000fe9f5:
                  iVar20 = DestroyImage(iVar15);
                  iVar14 = *local_c8;
LAB_000fea09:
                  if (iVar14 != 1) goto LAB_000fef60;
                  local_a8 = ReferenceImage(*(undefined4 *)(local_d8 + 0x333c));
                  if (local_a8 != 0) goto LAB_000fea38;
                  goto LAB_000ff84d;
                }
                *local_c8 = 8;
                puVar13[local_cc + 0x40000000] = 1;
                *puVar21 = puVar12[local_cc * 4 + -4];
                puVar21[1] = puVar12[local_cc * 4 + -3];
                puVar21[2] = puVar12[local_cc * 4 + -2];
                puVar21[3] = puVar12[local_cc * 4 + -1];
              }
              else {
                iVar15 = FUN_000fa9a0(param_2);
                uVar16 = puVar21[2];
                local_c8 = puVar13 + local_cc + 0x3fffffff;
                *local_c8 = 1;
                if ((int)uVar16 < 0) goto LAB_000fe9b6;
                FUN_000fba40(param_2);
                local_40 = local_5c;
                local_34 = local_50;
                local_3c = local_58;
                local_38 = local_54;
                if ((int)local_54 < 0) {
                  bVar23 = true;
                  local_90 = 0;
                }
                else {
                  local_90 = FUN_000fa9a0(param_2);
                  bVar23 = local_90 == 0;
                }
                local_a0 = local_cc + 0x3fffffff;
                if (((iVar15 != 0) && (bVar23)) || (local_40 * local_3c < *puVar21 * puVar21[1])) {
                  *puVar21 = local_40;
                  puVar21[1] = local_3c;
                  puVar21[2] = local_38;
                  puVar21[3] = local_34;
                  *local_c8 = 3;
                  iVar15 = local_90;
                }
                local_90 = iVar15;
                iVar10 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);
                if (iVar10 == 0) {
                  RelinquishMagickMemory(puVar12);
                  RelinquishMagickMemory(puVar13);
                  DestroyImage(local_a8);
                  uVar19 = 0;
                  goto LAB_000fe7b4;
                }
                *(undefined4 *)(iVar10 + 0x84) = 4;
                FUN_000fab80(3,param_2);
                uVar8 = local_24;
                uVar7 = local_28;
                uVar22 = local_2c;
                uVar16 = local_30;
                local_94 = local_30;
                local_98 = local_2c;
                if (-1 < (int)local_28) {
                  if (*(int *)(iVar10 + 0x294) == 0) {
                    SetImageAlphaChannel(iVar10,0xb,param_2);
                  }
                  if (0 < (int)uVar22) {
                    local_d4 = uVar8;
                    while (iVar20 = GetAuthenticPixels(iVar10,uVar7,local_d4,uVar16,1,param_2),
                          iVar20 != 0) {
                      if (0 < (int)uVar16) {
                        iVar15 = *(int *)(iVar10 + 0x298);
                        if (*(int *)(*(int *)(iVar10 + 0x2a8) + 0x34) != 0) {
                          iVar14 = *(int *)(*(int *)(iVar10 + 0x2a8) + 0x38);
                          uVar18 = 0;
                          do {
                            *(undefined8 *)(iVar20 + iVar14 * 8) = 0;
                            uVar18 = uVar18 + 1;
                            iVar20 = iVar20 + iVar15 * 8;
                          } while (uVar18 != uVar16);
                        }
                      }
                      iVar20 = SyncAuthenticPixels(iVar10,param_2);
                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, uVar22 + uVar8 == local_d4))
                      break;
                    }
                  }
                }
                FUN_000fba40(param_2);
                if ((local_90 == 0) &&
                   (*puVar21 * puVar21[1] <= local_5c * local_58 + uVar16 * uVar22)) {
                  local_98 = 0;
                  local_94 = 0;
                }
                else {
                  *puVar21 = local_5c;
                  puVar21[1] = local_58;
                  puVar21[2] = local_54;
                  puVar21[3] = local_50;
                  *local_c8 = 9;
                }
                iVar15 = CloneImage(*(undefined4 *)(local_d8 + 0x333c),0,0,1,param_2);
                if (iVar15 == 0) {
                  RelinquishMagickMemory(puVar12);
                  RelinquishMagickMemory(puVar13);
                  DestroyImage(local_a8);
                  uVar19 = 0;
                  DestroyImage(iVar10);
                  goto LAB_000fe7b4;
                }
                *(undefined4 *)(iVar15 + 0x84) = 4;
                puVar1 = puVar12 + local_cc * 4 + -4;
                uVar16 = puVar1[1];
                uVar22 = *puVar1;
                local_b8 = puVar1[2];
                local_80 = puVar1[3];
                if (-1 < (int)local_b8) {
                  if (*(int *)(iVar15 + 0x294) == 0) {
                    SetImageAlphaChannel(iVar15,0xb,param_2);
                  }
                  if (0 < (int)uVar16) {
                    local_d4 = local_80;
                    while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),
                          iVar20 != 0) {
                      if (0 < (int)uVar22) {
                        iVar14 = *(int *)(iVar15 + 0x298);
                        if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {
                          iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);
                          uVar18 = 0;
                          do {
                            *(undefined8 *)(iVar20 + iVar2 * 8) = 0;
                            uVar18 = uVar18 + 1;
                            iVar20 = iVar20 + iVar14 * 8;
                          } while (uVar18 != uVar22);
                        }
                      }
                      iVar20 = SyncAuthenticPixels(iVar15,param_2);
                      if ((iVar20 == 0) || (local_d4 = local_d4 + 1, local_d4 == uVar16 + local_80))
                      break;
                    }
                  }
                }
                FUN_000fba40(param_2);
                local_40 = local_5c;
                local_34 = local_50;
                local_3c = local_58;
                local_38 = local_54;
                local_8c = uVar16;
                if ((-1 < (int)local_54) && (iVar20 = FUN_000fa9a0(param_2), iVar20 != 0)) {
                  FUN_000fab80(3,param_2);
                  local_3c = local_58;
                  local_40 = local_5c;
                  if ((int)local_b8 < 0) {
                    local_8c = local_58;
                    uVar22 = local_5c;
                    local_b8 = local_54;
                    local_80 = local_50;
                  }
                  else {
                    if ((int)local_54 < (int)local_b8) {
                      iVar20 = local_b8 - local_54;
                      local_b8 = local_54;
                      uVar18 = iVar20 + uVar22;
                      uVar22 = local_5c;
                      if (local_5c <= uVar18) {
                        uVar22 = uVar18;
                      }
                    }
                    else {
                      local_40 = (local_54 - local_b8) + local_5c;
                      if (uVar22 < local_40) {
                        uVar22 = local_40;
                      }
                    }
                    if ((int)local_50 < (int)local_80) {
                      uVar16 = (local_80 - local_50) + uVar16;
                      local_80 = local_50;
                      local_8c = local_58;
                      if (local_58 <= uVar16) {
                        local_8c = uVar16;
                      }
                    }
                    else {
                      local_3c = (local_50 - local_80) + local_58;
                      local_8c = local_3c;
                      if (local_3c <= uVar16) {
                        local_8c = uVar16;
                      }
                    }
                  }
                  if (-1 < (int)local_b8) {
                    if (*(int *)(iVar15 + 0x294) == 0) {
                      SetImageAlphaChannel(iVar15,0xb,param_2);
                    }
                    if (0 < (int)local_8c) {
                      local_d4 = local_80;
                      while (iVar20 = GetAuthenticPixels(iVar15,local_b8,local_d4,uVar22,1,param_2),
                            iVar20 != 0) {
                        if (0 < (int)uVar22) {
                          iVar14 = *(int *)(iVar15 + 0x298);
                          if (*(int *)(*(int *)(iVar15 + 0x2a8) + 0x34) != 0) {
                            iVar2 = *(int *)(*(int *)(iVar15 + 0x2a8) + 0x38);
                            uVar16 = 0;
                            do {
                              *(undefined8 *)(iVar20 + iVar2 * 8) = 0;
                              uVar16 = uVar16 + 1;
                              iVar20 = iVar20 + iVar14 * 8;
                            } while (uVar22 != uVar16);
                          }
                        }
                        iVar20 = SyncAuthenticPixels(iVar15,param_2);
                        if ((iVar20 == 0) ||
                           (local_d4 = local_d4 + 1, local_8c + local_80 == local_d4)) break;
                      }
                    }
                  }
                  FUN_000fab80(4,param_2);
                  local_40 = local_5c;
                  local_3c = local_58;
                  local_38 = local_54;
                  local_34 = local_50;
                }
                iVar14 = *local_c8;
                iVar20 = iVar15;
                if (local_3c * local_40 + local_8c * uVar22 <
                    local_94 * local_98 + *puVar1 * puVar1[1] + *puVar21 * puVar21[1]) {
                  *puVar1 = uVar22;
                  puVar1[1] = local_8c;
                  puVar1[2] = local_b8;
                  puVar1[3] = local_80;
                  puVar21[1] = local_3c;
                  *puVar21 = local_40;
                  puVar21[2] = local_38;
                  puVar21[3] = local_34;
                  if (iVar14 != 9) {
                    *local_c8 = 2;
                    goto LAB_000fe9cd;
                  }
                  iVar10 = DestroyImage(iVar10);
                  *local_c8 = 2;
                  if (iVar10 != 0) goto LAB_000fe9cd;
                  local_a8 = DestroyImage(local_a8);
                  if (*local_c8 == 2) {
                    iVar20 = 0;
                    local_a8 = iVar15;
                    goto LAB_000fee89;
                  }
                  goto LAB_000fe9f5;
                }
                if (iVar14 != 9) goto LAB_000fe9cd;
                iVar20 = DestroyImage(iVar15);
                DestroyImage(local_a8);
                puVar12[local_cc * 4 + 4] = *puVar21;
                puVar12[local_cc * 4 + 5] = puVar21[1];
                puVar12[local_cc * 4 + 6] = puVar21[2];
                puVar12[local_cc * 4 + 7] = puVar21[3];
                *puVar21 = local_94;
                puVar21[1] = local_98;
                puVar21[2] = uVar7;
                puVar21[3] = uVar8;
                *local_c8 = 9;
                puVar13[local_cc + 0x40000000] = 2;
                local_a0 = local_cc + 0x40000000;
                local_cc = local_cc + 1;
                local_a8 = iVar10;
                iVar10 = 0;
LAB_000fee89:
                local_c8 = puVar13 + local_a0;
LAB_000fea38:
                puVar13[local_cc] = *local_c8;
              }
              local_cc = local_cc + 1;
              local_d8 = GetNextImageInList(local_d8);
            } while (local_d8 != 0);
          }
          DestroyImage(local_a8);
          uVar24 = AcquireExceptionInfo();
          iVar10 = GetFirstImageInList(param_1);
          local_44 = NewImageList();
          local_d8 = 0;
joined_r0x000ff4a8:
          if (iVar10 != 0) {
            do {
              iVar20 = CloneImage(iVar10,0,0,1,param_2);
              if (iVar20 == 0) {
LAB_000ff7a7:
                DestroyExceptionInfo(uVar24);
                RelinquishMagickMemory(puVar12);
                RelinquishMagickMemory(puVar13);
                uVar19 = 0;
                DestroyImageList(local_44);
                goto LAB_000fe7b4;
              }
              *(undefined4 *)(iVar20 + 0x84) = 4;
              dVar6 = DAT_002df8d8;
              piVar17 = puVar13 + local_d8;
              if (*piVar17 == 8) {
                iVar15 = 0;
                piVar9 = puVar13 + local_d8 + 1;
                do {
                  piVar17 = piVar9;
                  dVar4 = (double)*(int *)(iVar10 + 0x250);
                  dVar3 = dVar6;
                  dVar5 = dVar4;
                  if (dVar4 < 0.0) {
                    dVar3 = DAT_002df8e0;
                    dVar5 = -dVar4;
                  }
                  if (DAT_002df2d0 <= dVar5) {
                    dVar3 = (double)DAT_002df8b4 / dVar4;
                  }
                  local_74 = (longlong)
                             ROUND(dVar3 * (double)(uint)(*(int *)(iVar10 + 0x248) * 1000));
                  iVar15 = iVar15 + (int)local_74;
                  iVar10 = GetNextImageInList(iVar10);
                  local_d8 = local_d8 + 1;
                  piVar9 = piVar17 + 1;
                } while (*piVar17 == 8);
                iVar14 = *(int *)(iVar10 + 0x248);
                dVar3 = (double)*(int *)(iVar10 + 0x250);
                dVar6 = DAT_002df8d8;
                dVar4 = dVar3;
                if (dVar3 < 0.0) {
                  dVar6 = DAT_002df8e0;
                  dVar4 = -dVar3;
                }
                if (DAT_002df2d0 <= dVar4) {
                  dVar6 = (double)DAT_002df8b4 / dVar3;
                }
                *(undefined4 *)(iVar20 + 0x250) = 100;
                local_74._0_4_ = (int)(longlong)ROUND(dVar6 * (double)(uint)(iVar14 * 1000));
                *(uint *)(iVar20 + 0x248) = (uint)(((int)local_74 + iVar15) * 100) / 1000;
              }
              iVar15 = CropImage(iVar20,puVar12 + local_d8 * 4,uVar24);
              DestroyImage(iVar20);
              if (iVar15 == 0) goto LAB_000ff7a7;
              *(int *)(iVar15 + 0x240) = *piVar17;
              if (*piVar17 != 9) goto code_r0x000ff534;
              *(undefined4 *)(iVar15 + 0x248) = 0;
              *(undefined4 *)(iVar15 + 0x240) = 1;
              AppendImageToList(&local_44,iVar15);
              local_d8 = local_d8 + 1;
            } while( true );
          }
          DestroyExceptionInfo(uVar24);
          RelinquishMagickMemory(puVar12);
          RelinquishMagickMemory(puVar13);
          uVar19 = GetFirstImageInList(local_44);
          goto LAB_000fe7b4;
        }
LAB_000ff84d:
        uVar19 = 0;
        RelinquishMagickMemory(puVar12);
        RelinquishMagickMemory(puVar13);
        goto LAB_000fe7b4;
      }
      RelinquishMagickMemory(puVar12);
      pcVar26 = "MemoryAllocationFailed";
      uVar25 = 400;
      uVar24 = 0x3f4;
    }
  }
  else {
    iVar20 = *(int *)(iVar10 + 0x18);
    if ((iVar20 == *(int *)(param_1 + 0x18)) &&
       (iVar15 = *(int *)(param_1 + 0x1c), iVar15 == *(int *)(iVar10 + 0x1c))) {
      if ((*(int *)(iVar10 + 0x208) == 0) &&
         ((*(int *)(iVar10 + 0x20c) == 0 &&
          (iVar14 = *(int *)(param_1 + 0x200), iVar14 == *(int *)(iVar10 + 0x200))))) {
        iVar2 = *(int *)(param_1 + 0x204);
        iVar11 = iVar10;
        while (*(int *)(iVar11 + 0x204) == iVar2) {
          iVar11 = GetNextImageInList(iVar11);
          if (iVar11 == 0) goto LAB_000fe844;
          if ((*(int *)(iVar11 + 0x18) != iVar20) || (*(int *)(iVar11 + 0x1c) != iVar15))
          goto LAB_000fe818;
          if (((*(int *)(iVar11 + 0x208) != 0) || (*(int *)(iVar11 + 0x20c) != 0)) ||
             (*(int *)(iVar11 + 0x200) != iVar14)) break;
        }
      }
      pcVar26 = "ImagePagesAreNotCoalesced";
      uVar25 = 0x19a;
      uVar24 = 0x3e3;
    }
    else {
LAB_000fe818:
      pcVar26 = "ImagesAreNotTheSameSize";
      uVar25 = 0x19a;
      uVar24 = 0x3de;
    }
  }
  uVar19 = 0;
  ThrowMagickException
            (param_2,"MagickCore/layer.c","OptimizeLayerFrames",uVar24,uVar25,pcVar26,"`%s\'",
             param_1 + 0x318);
LAB_000fe7b4:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar19;
  }
                    /* WARNING: Subroutine does not return */
  FUN_002decd0();
code_r0x000ff534:
  iVar10 = GetNextImageInList(iVar10);
  AppendImageToList(&local_44,iVar15);
  local_d8 = local_d8 + 1;
  goto joined_r0x000ff4a8;
}

