
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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 */

RectangleInfo * __regparm3
CompareImagesBounds(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,
                   LayerMethod method,ExceptionInfo *exception)

{
  int iVar1;
  PixelChannelMap *pPVar2;
  Quantum *pQVar3;
  MagickBooleanType MVar4;
  size_t rows;
  int in_GS_OFFSET;
  Quantum *local_ec;
  int local_e8;
  int local_e0;
  int local_dc;
  int local_d8;
  size_t local_d0;
  PixelInfo pixel1;
  PixelInfo pixel2;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  GetPixelInfo(image1,&pixel1);
  GetPixelInfo(image2,&pixel2);
  if (0 < (int)image1->columns) {
    local_e0 = 0;
    do {
      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);
      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);
      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {
LAB_000ea5c0:
        if (local_e0 < (int)image1->columns) {
          rows = image1->rows;
          local_dc = image1->columns - 1;
          goto LAB_000ea5d8;
        }
        break;
      }
      if (0 < (int)image1->rows) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&pixel1,0,0x50);
          pixel1.storage_class = image1->storage_class;
          pixel1.alpha = (MagickRealType)DAT_0029f710;
          pixel1.fuzz = image1->fuzz;
          pixel1.colorspace = image1->colorspace;
          pixel1.depth = image1->depth;
          pixel1.alpha_trait = image1->alpha_trait;
          if (pQVar3 != (Quantum *)0x0) {
            pPVar2 = image1->channel_map;
            pixel1.red = pQVar3[pPVar2->offset];
            pixel1.green = pQVar3[pPVar2[1].offset];
            pixel1.blue = pQVar3[pPVar2[2].offset];
            if (pPVar2[3].traits != UndefinedPixelTrait) {
              pixel1.black = pQVar3[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != UndefinedPixelTrait) {
              pixel1.alpha = pQVar3[pPVar2[4].offset];
              pixel1.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != UndefinedPixelTrait) {
              pixel1.index = pQVar3[pPVar2[5].offset];
            }
          }
          ResetMagickMemory(&pixel2,0,0x50);
          pixel2.storage_class = image2->storage_class;
          pixel2.alpha = (MagickRealType)DAT_0029f710;
          pixel2.fuzz = image2->fuzz;
          pixel2.colorspace = image2->colorspace;
          pixel2.depth = image2->depth;
          pixel2.alpha_trait = image2->alpha_trait;
          if (local_ec != (Quantum *)0x0) {
            pPVar2 = image2->channel_map;
            pixel2.red = local_ec[pPVar2->offset];
            pixel2.green = local_ec[pPVar2[1].offset];
            pixel2.blue = local_ec[pPVar2[2].offset];
            if (pPVar2[3].traits != UndefinedPixelTrait) {
              pixel2.black = local_ec[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != UndefinedPixelTrait) {
              pixel2.alpha = local_ec[pPVar2[4].offset];
              pixel2.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != UndefinedPixelTrait) {
              pixel2.index = local_ec[pPVar2[5].offset];
            }
          }
          MVar4 = ComparePixels(method,&pixel1,&pixel2);
          if (MVar4 != MagickFalse) {
            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;
            break;
          }
          local_e8 = local_e8 + 1;
          pQVar3 = pQVar3 + image1->number_channels;
          local_ec = local_ec + image2->number_channels;
        } while (local_e8 < (int)image1->rows);
      }
      local_e0 = local_e0 + 1;
    } while (local_e0 < (int)image1->columns);
  }
  __return_storage_ptr__->width = 1;
  __return_storage_ptr__->height = 1;
  __return_storage_ptr__->x = -1;
  __return_storage_ptr__->y = -1;
  goto LAB_000ea593;
LAB_000ea5d8:
  do {
    pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);
    local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);
    rows = image1->rows;
    if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;
    if (0 < (int)rows) {
      local_e8 = 0;
      do {
        ResetMagickMemory(&pixel1,0,0x50);
        pixel1.storage_class = image1->storage_class;
        pixel1.alpha = (MagickRealType)DAT_0029f710;
        pixel1.fuzz = image1->fuzz;
        pixel1.colorspace = image1->colorspace;
        pixel1.depth = image1->depth;
        pixel1.alpha_trait = image1->alpha_trait;
        if (pQVar3 != (Quantum *)0x0) {
          pPVar2 = image1->channel_map;
          pixel1.red = pQVar3[pPVar2->offset];
          pixel1.green = pQVar3[pPVar2[1].offset];
          pixel1.blue = pQVar3[pPVar2[2].offset];
          if (pPVar2[3].traits != UndefinedPixelTrait) {
            pixel1.black = pQVar3[pPVar2[3].offset];
          }
          if (pPVar2[4].traits != UndefinedPixelTrait) {
            pixel1.alpha = pQVar3[pPVar2[4].offset];
            pixel1.alpha_trait = BlendPixelTrait;
          }
          if (pPVar2[5].traits != UndefinedPixelTrait) {
            pixel1.index = pQVar3[pPVar2[5].offset];
          }
        }
        ResetMagickMemory(&pixel2,0,0x50);
        pixel2.storage_class = image2->storage_class;
        pixel2.alpha = (MagickRealType)DAT_0029f710;
        pixel2.fuzz = image2->fuzz;
        pixel2.colorspace = image2->colorspace;
        pixel2.depth = image2->depth;
        pixel2.alpha_trait = image2->alpha_trait;
        if (local_ec != (Quantum *)0x0) {
          pPVar2 = image2->channel_map;
          pixel2.red = local_ec[pPVar2->offset];
          pixel2.green = local_ec[pPVar2[1].offset];
          pixel2.blue = local_ec[pPVar2[2].offset];
          if (pPVar2[3].traits != UndefinedPixelTrait) {
            pixel2.black = local_ec[pPVar2[3].offset];
          }
          if (pPVar2[4].traits != UndefinedPixelTrait) {
            pixel2.alpha = local_ec[pPVar2[4].offset];
            pixel2.alpha_trait = BlendPixelTrait;
          }
          if (pPVar2[5].traits != UndefinedPixelTrait) {
            pixel2.index = local_ec[pPVar2[5].offset];
          }
        }
        MVar4 = ComparePixels(method,&pixel1,&pixel2);
        rows = image1->rows;
        if (MVar4 != MagickFalse) {
          if (local_e8 < (int)rows) {
            local_d0 = (local_dc - local_e0) + 1;
            goto LAB_000ea847;
          }
          break;
        }
        local_e8 = local_e8 + 1;
        pQVar3 = pQVar3 + image1->number_channels;
        local_ec = local_ec + image2->number_channels;
      } while (local_e8 < (int)rows);
    }
    local_dc = local_dc + -1;
  } while (local_dc != -1);
  local_d0 = (local_dc - local_e0) + 1;
  if ((int)rows < 1) {
    local_dc = 0;
  }
  else {
LAB_000ea847:
    local_dc = 0;
    do {
      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);
      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);
      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {
LAB_000ead3d:
        rows = image1->rows;
        break;
      }
      if (0 < (int)image1->columns) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&pixel1,0,0x50);
          pixel1.storage_class = image1->storage_class;
          pixel1.alpha = (MagickRealType)DAT_0029f710;
          pixel1.fuzz = image1->fuzz;
          pixel1.colorspace = image1->colorspace;
          pixel1.depth = image1->depth;
          pixel1.alpha_trait = image1->alpha_trait;
          if (pQVar3 != (Quantum *)0x0) {
            pPVar2 = image1->channel_map;
            pixel1.red = pQVar3[pPVar2->offset];
            pixel1.green = pQVar3[pPVar2[1].offset];
            pixel1.blue = pQVar3[pPVar2[2].offset];
            if (pPVar2[3].traits != UndefinedPixelTrait) {
              pixel1.black = pQVar3[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != UndefinedPixelTrait) {
              pixel1.alpha = pQVar3[pPVar2[4].offset];
              pixel1.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != UndefinedPixelTrait) {
              pixel1.index = pQVar3[pPVar2[5].offset];
            }
          }
          ResetMagickMemory(&pixel2,0,0x50);
          pixel2.storage_class = image2->storage_class;
          pixel2.alpha = (MagickRealType)DAT_0029f710;
          pixel2.fuzz = image2->fuzz;
          pixel2.colorspace = image2->colorspace;
          pixel2.depth = image2->depth;
          pixel2.alpha_trait = image2->alpha_trait;
          if (local_ec != (Quantum *)0x0) {
            pPVar2 = image2->channel_map;
            pixel2.red = local_ec[pPVar2->offset];
            pixel2.green = local_ec[pPVar2[1].offset];
            pixel2.blue = local_ec[pPVar2[2].offset];
            if (pPVar2[3].traits != UndefinedPixelTrait) {
              pixel2.black = local_ec[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != UndefinedPixelTrait) {
              pixel2.alpha = local_ec[pPVar2[4].offset];
              pixel2.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != UndefinedPixelTrait) {
              pixel2.index = local_ec[pPVar2[5].offset];
            }
          }
          MVar4 = ComparePixels(method,&pixel1,&pixel2);
          if (MVar4 != MagickFalse) {
            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;
            break;
          }
          local_e8 = local_e8 + 1;
          pQVar3 = pQVar3 + image1->number_channels;
          local_ec = local_ec + image2->number_channels;
        } while (local_e8 < (int)image1->columns);
      }
      local_dc = local_dc + 1;
      rows = image1->rows;
    } while (local_dc < (int)rows);
  }
  local_d8 = rows - 1;
  if (-1 < local_d8) {
    while( true ) {
      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);
      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);
      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;
      if (0 < (int)image1->columns) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&pixel1,0,0x50);
          pixel1.storage_class = image1->storage_class;
          pixel1.alpha = (MagickRealType)DAT_0029f710;
          pixel1.fuzz = image1->fuzz;
          pixel1.colorspace = image1->colorspace;
          pixel1.depth = image1->depth;
          pixel1.alpha_trait = image1->alpha_trait;
          if (pQVar3 != (Quantum *)0x0) {
            pPVar2 = image1->channel_map;
            pixel1.red = pQVar3[pPVar2->offset];
            pixel1.green = pQVar3[pPVar2[1].offset];
            pixel1.blue = pQVar3[pPVar2[2].offset];
            if (pPVar2[3].traits != UndefinedPixelTrait) {
              pixel1.black = pQVar3[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != UndefinedPixelTrait) {
              pixel1.alpha = pQVar3[pPVar2[4].offset];
              pixel1.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != UndefinedPixelTrait) {
              pixel1.index = pQVar3[pPVar2[5].offset];
            }
          }
          ResetMagickMemory(&pixel2,0,0x50);
          pixel2.storage_class = image2->storage_class;
          pixel2.alpha = (MagickRealType)DAT_0029f710;
          pixel2.fuzz = image2->fuzz;
          pixel2.colorspace = image2->colorspace;
          pixel2.depth = image2->depth;
          pixel2.alpha_trait = image2->alpha_trait;
          if (local_ec != (Quantum *)0x0) {
            pPVar2 = image2->channel_map;
            pixel2.red = local_ec[pPVar2->offset];
            pixel2.green = local_ec[pPVar2[1].offset];
            pixel2.blue = local_ec[pPVar2[2].offset];
            if (pPVar2[3].traits != UndefinedPixelTrait) {
              pixel2.black = local_ec[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != UndefinedPixelTrait) {
              pixel2.alpha = local_ec[pPVar2[4].offset];
              pixel2.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != UndefinedPixelTrait) {
              pixel2.index = local_ec[pPVar2[5].offset];
            }
          }
          MVar4 = ComparePixels(method,&pixel1,&pixel2);
          if (MVar4 != MagickFalse) {
            if (local_e8 < (int)image1->columns) goto LAB_000ead14;
            break;
          }
          local_e8 = local_e8 + 1;
          pQVar3 = pQVar3 + image1->number_channels;
          local_ec = local_ec + image2->number_channels;
        } while (local_e8 < (int)image1->columns);
      }
      local_d8 = local_d8 + -1;
      if (local_d8 == -1) break;
    }
  }
LAB_000ead14:
  __return_storage_ptr__->width = local_d0;
  __return_storage_ptr__->y = local_dc;
  __return_storage_ptr__->height = (local_d8 - local_dc) + 1;
  __return_storage_ptr__->x = local_e0;
LAB_000ea593:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return __return_storage_ptr__;
}



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

int * __regparm3
FUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,
            undefined4 param_5)

{
  int iVar1;
  int iVar2;
  int in_GS_OFFSET;
  int local_ec;
  int local_e8;
  int local_e0;
  int local_dc;
  int local_d8;
  int local_d0;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined8 local_b4;
  undefined4 local_ac;
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  double local_80;
  undefined8 local_78;
  undefined4 local_70;
  undefined4 local_6c;
  undefined4 local_68;
  undefined8 local_64;
  undefined4 local_5c;
  undefined8 local_50;
  undefined8 local_48;
  undefined8 local_40;
  undefined8 local_38;
  double local_30;
  undefined8 local_28;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xea2bd;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  GetPixelInfo(param_2,&local_c0);
  GetPixelInfo(param_3,&local_70);
  if (0 < (int)param_2[6]) {
    local_e0 = 0;
    do {
      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);
      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);
      if ((iVar1 == 0) || (local_ec == 0)) {
LAB_000ea5c0:
        if (local_e0 < (int)param_2[6]) {
          local_d8 = param_2[7];
          local_dc = param_2[6] + -1;
          goto LAB_000ea5d8;
        }
        break;
      }
      if (0 < (int)param_2[7]) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&local_c0,0,0x50);
          local_c0 = *param_2;
          local_80 = (double)DAT_0029f710;
          local_b4 = *(undefined8 *)(param_2 + 0x88);
          local_bc = param_2[1];
          local_ac = param_2[8];
          local_b8 = param_2[0xa5];
          if (iVar1 != 0) {
            iVar2 = param_2[0xaa];
            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
              local_b8 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          ResetMagickMemory(&local_70,0,0x50);
          local_70 = *param_3;
          local_30 = (double)DAT_0029f710;
          local_64 = *(undefined8 *)(param_3 + 0x88);
          local_6c = param_3[1];
          local_5c = param_3[8];
          local_68 = param_3[0xa5];
          if (local_ec != 0) {
            iVar2 = param_3[0xaa];
            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
              local_68 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          iVar2 = FUN_000ea1f0();
          if (iVar2 != 0) {
            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;
            break;
          }
          local_e8 = local_e8 + 1;
          iVar1 = iVar1 + param_2[0xa6] * 8;
          local_ec = local_ec + param_3[0xa6] * 8;
        } while (local_e8 < (int)param_2[7]);
      }
      local_e0 = local_e0 + 1;
    } while (local_e0 < (int)param_2[6]);
  }
  *param_1 = 1;
  param_1[1] = 1;
  param_1[2] = -1;
  param_1[3] = -1;
  goto LAB_000ea593;
LAB_000ea5d8:
  do {
    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);
    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);
    local_d8 = param_2[7];
    if ((iVar1 == 0) || (local_ec == 0)) break;
    if (0 < local_d8) {
      local_e8 = 0;
      do {
        ResetMagickMemory(&local_c0,0,0x50);
        local_c0 = *param_2;
        local_80 = (double)DAT_0029f710;
        local_b4 = *(undefined8 *)(param_2 + 0x88);
        local_bc = param_2[1];
        local_ac = param_2[8];
        local_b8 = param_2[0xa5];
        if (iVar1 != 0) {
          iVar2 = param_2[0xaa];
          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
          if (*(int *)(iVar2 + 0x28) != 0) {
            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
          }
          if (*(int *)(iVar2 + 0x34) != 0) {
            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
            local_b8 = 4;
          }
          if (*(int *)(iVar2 + 0x40) != 0) {
            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
          }
        }
        ResetMagickMemory(&local_70,0,0x50);
        local_70 = *param_3;
        local_30 = (double)DAT_0029f710;
        local_64 = *(undefined8 *)(param_3 + 0x88);
        local_6c = param_3[1];
        local_5c = param_3[8];
        local_68 = param_3[0xa5];
        if (local_ec != 0) {
          iVar2 = param_3[0xaa];
          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
          if (*(int *)(iVar2 + 0x28) != 0) {
            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
          }
          if (*(int *)(iVar2 + 0x34) != 0) {
            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
            local_68 = 4;
          }
          if (*(int *)(iVar2 + 0x40) != 0) {
            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
          }
        }
        iVar2 = FUN_000ea1f0();
        local_d8 = param_2[7];
        if (iVar2 != 0) {
          if (local_e8 < local_d8) {
            local_d0 = (local_dc - local_e0) + 1;
            goto LAB_000ea847;
          }
          break;
        }
        local_e8 = local_e8 + 1;
        iVar1 = iVar1 + param_2[0xa6] * 8;
        local_ec = local_ec + param_3[0xa6] * 8;
      } while (local_e8 < local_d8);
    }
    local_dc = local_dc + -1;
  } while (local_dc != -1);
  local_d0 = (local_dc - local_e0) + 1;
  if (local_d8 < 1) {
    local_dc = 0;
  }
  else {
LAB_000ea847:
    local_dc = 0;
    do {
      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);
      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);
      if ((iVar1 == 0) || (local_ec == 0)) {
LAB_000ead3d:
        local_d8 = param_2[7];
        break;
      }
      if (0 < (int)param_2[6]) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&local_c0,0,0x50);
          local_c0 = *param_2;
          local_80 = (double)DAT_0029f710;
          local_b4 = *(undefined8 *)(param_2 + 0x88);
          local_bc = param_2[1];
          local_ac = param_2[8];
          local_b8 = param_2[0xa5];
          if (iVar1 != 0) {
            iVar2 = param_2[0xaa];
            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
              local_b8 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          ResetMagickMemory(&local_70,0,0x50);
          local_70 = *param_3;
          local_30 = (double)DAT_0029f710;
          local_64 = *(undefined8 *)(param_3 + 0x88);
          local_6c = param_3[1];
          local_5c = param_3[8];
          local_68 = param_3[0xa5];
          if (local_ec != 0) {
            iVar2 = param_3[0xaa];
            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
              local_68 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          iVar2 = FUN_000ea1f0();
          if (iVar2 != 0) {
            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;
            break;
          }
          local_e8 = local_e8 + 1;
          iVar1 = iVar1 + param_2[0xa6] * 8;
          local_ec = local_ec + param_3[0xa6] * 8;
        } while (local_e8 < (int)param_2[6]);
      }
      local_dc = local_dc + 1;
      local_d8 = param_2[7];
    } while (local_dc < local_d8);
  }
  local_d8 = local_d8 + -1;
  if (-1 < local_d8) {
    while( true ) {
      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);
      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);
      if ((iVar1 == 0) || (local_ec == 0)) break;
      if (0 < (int)param_2[6]) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&local_c0,0,0x50);
          local_c0 = *param_2;
          local_80 = (double)DAT_0029f710;
          local_b4 = *(undefined8 *)(param_2 + 0x88);
          local_bc = param_2[1];
          local_ac = param_2[8];
          local_b8 = param_2[0xa5];
          if (iVar1 != 0) {
            iVar2 = param_2[0xaa];
            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
              local_b8 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          ResetMagickMemory(&local_70,0,0x50);
          local_70 = *param_3;
          local_30 = (double)DAT_0029f710;
          local_64 = *(undefined8 *)(param_3 + 0x88);
          local_6c = param_3[1];
          local_5c = param_3[8];
          local_68 = param_3[0xa5];
          if (local_ec != 0) {
            iVar2 = param_3[0xaa];
            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
              local_68 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          iVar2 = FUN_000ea1f0();
          if (iVar2 != 0) {
            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;
            break;
          }
          local_e8 = local_e8 + 1;
          iVar1 = iVar1 + param_2[0xa6] * 8;
          local_ec = local_ec + param_3[0xa6] * 8;
        } while (local_e8 < (int)param_2[6]);
      }
      local_d8 = local_d8 + -1;
      if (local_d8 == -1) break;
    }
  }
LAB_000ead14:
  *param_1 = local_d0;
  param_1[3] = local_dc;
  param_1[1] = (local_d8 - local_dc) + 1;
  param_1[2] = local_e0;
LAB_000ea593:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return param_1;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
MOV EDI,ECX
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x2eed43
SUB ESP,0xf4
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x10c]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xe4],EAX
XOR EAX,EAX
LEA EAX,[ESP + 0x44]
MOV dword ptr [ESP + 0x10],EAX
PUSH EAX
PUSH EDX
CALL 0x000320a0
POP EAX
POP EDX
LEA EAX,[ESP + 0x94]
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH EDI
CALL 0x000320a0
MOV ECX,dword ptr [EBP + 0x18]
ADD ESP,0x10
TEST ECX,ECX
JLE 0x000ea574
MOV dword ptr [ESP + 0x1c],0x0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [EBP + 0x1c]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [ESP + 0x34]
PUSH EBP
CALL 0x00030e70
ADD ESP,0x18
PUSH dword ptr [ESP + 0x20]
MOV ESI,EAX
PUSH dword ptr [EDI + 0x1c]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [ESP + 0x34]
PUSH EDI
CALL 0x00030e70
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x20
TEST ESI,ESI
JZ 0x000ea5c0
TEST EAX,EAX
JZ 0x000ea5c0
MOV EAX,dword ptr [EBP + 0x1c]
TEST EAX,EAX
JLE 0x000ea562
MOV dword ptr [ESP + 0x14],0x0
JMP 0x000ea3ab
MOV EAX,dword ptr [EBP + 0x298]
MOV ECX,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x14],0x1
LEA ESI,[ESI + EAX*0x8]
MOV EAX,dword ptr [EDI + 0x298]
LEA EAX,[ECX + EAX*0x8]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x14]
CMP EAX,EDX
JGE 0x000ea562
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x00032b20
MOV EAX,dword ptr [EBP]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0x8c]
FLD qword ptr [EBP + 0x220]
FSTP qword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESP + 0x60],EAX
MOV EAX,dword ptr [EBP + 0x294]
MOV dword ptr [ESP + 0x54],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x000ea45a
MOV EAX,dword ptr [EBP + 0x2a8]
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0x28]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0x5c]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0x64]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x6c]
TEST ECX,ECX
JZ 0x000ea42d
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x74]
MOV EDX,dword ptr [EAX + 0x34]
TEST EDX,EDX
JZ 0x000ea446
MOV EDX,dword ptr [EAX + 0x38]
FLD qword ptr [ESI + EDX*0x8]
MOV dword ptr [ESP + 0x44],0x4
FSTP qword ptr [ESP + 0x7c]
MOV ECX,dword ptr [EAX + 0x40]
TEST ECX,ECX
JZ 0x000ea45a
MOV EAX,dword ptr [EAX + 0x44]
FLD qword ptr [ESI + EAX*0x8]
FSTP qword ptr [ESP + 0x84]
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x18]
CALL 0x00032b20
MOV EAX,dword ptr [EDI]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0xdc]
FLD qword ptr [EDI + 0x220]
FSTP qword ptr [ESP + 0xa8]
MOV dword ptr [ESP + 0x9c],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP + 0xa0],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [EDI + 0x294]
MOV dword ptr [ESP + 0xa4],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x000ea53d
MOV EAX,dword ptr [EDI + 0x2a8]
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX + 0x8]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0xac]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0xb4]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x28]
FSTP qword ptr [ESP + 0xbc]
TEST EDX,EDX
JZ 0x000ea502
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ECX + EDX*0x8]
FSTP qword ptr [ESP + 0xc4]
MOV ECX,dword ptr [EAX + 0x34]
TEST ECX,ECX
JZ 0x000ea525
MOV EDX,dword ptr [EAX + 0x38]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EDX*0x8]
MOV dword ptr [ESP + 0x94],0x4
FSTP qword ptr [ESP + 0xcc]
MOV EDX,dword ptr [EAX + 0x40]
TEST EDX,EDX
JZ 0x000ea53d
MOV EAX,dword ptr [EAX + 0x44]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EAX*0x8]
FSTP qword ptr [ESP + 0xd4]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x000ea1f0
MOV EDX,dword ptr [EBP + 0x1c]
TEST EAX,EAX
JZ 0x000ea380
CMP EDX,dword ptr [ESP + 0x14]
JG 0x000ea5c0
ADD dword ptr [ESP + 0x1c],0x1
MOV EAX,dword ptr [ESP + 0x1c]
CMP dword ptr [EBP + 0x18],EAX
JG 0x000ea320
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX],0x1
MOV dword ptr [EAX + 0x4],0x1
MOV dword ptr [EAX + 0x8],0xffffffff
MOV dword ptr [EAX + 0xc],0xffffffff
MOV ESI,dword ptr [ESP + 0xdc]
XOR ESI,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0x28]
JNZ 0x000ead66
ADD ESP,0xec
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x18]
CMP EAX,dword ptr [ESP + 0x1c]
JLE 0x000ea574
MOV EDX,dword ptr [EBP + 0x1c]
SUB EAX,0x1
MOV dword ptr [ESP + 0x20],EAX
NOP
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH EDX
PUSH 0x1
PUSH 0x0
PUSH dword ptr [ESP + 0x38]
PUSH EBP
CALL 0x00030e70
ADD ESP,0x18
PUSH dword ptr [ESP + 0x20]
MOV ESI,EAX
PUSH dword ptr [EDI + 0x1c]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [ESP + 0x38]
PUSH EDI
CALL 0x00030e70
MOV EDX,dword ptr [EBP + 0x1c]
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x20
TEST ESI,ESI
JZ 0x000ea830
TEST EAX,EAX
JZ 0x000ea830
TEST EDX,EDX
JLE 0x000ea81e
MOV dword ptr [ESP + 0x14],0x0
JMP 0x000ea663
MOV EAX,dword ptr [EBP + 0x298]
MOV ECX,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x14],0x1
LEA ESI,[ESI + EAX*0x8]
MOV EAX,dword ptr [EDI + 0x298]
LEA EAX,[ECX + EAX*0x8]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x14]
CMP EDX,EAX
JLE 0x000ea81e
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x00032b20
MOV EAX,dword ptr [EBP]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0x8c]
FLD qword ptr [EBP + 0x220]
FSTP qword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESP + 0x60],EAX
MOV EAX,dword ptr [EBP + 0x294]
MOV dword ptr [ESP + 0x54],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x000ea712
MOV EAX,dword ptr [EBP + 0x2a8]
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0x28]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0x5c]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0x64]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x6c]
TEST ECX,ECX
JZ 0x000ea6e5
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x74]
MOV EDX,dword ptr [EAX + 0x34]
TEST EDX,EDX
JZ 0x000ea6fe
MOV EDX,dword ptr [EAX + 0x38]
FLD qword ptr [ESI + EDX*0x8]
MOV dword ptr [ESP + 0x44],0x4
FSTP qword ptr [ESP + 0x7c]
MOV ECX,dword ptr [EAX + 0x40]
TEST ECX,ECX
JZ 0x000ea712
MOV EAX,dword ptr [EAX + 0x44]
FLD qword ptr [ESI + EAX*0x8]
FSTP qword ptr [ESP + 0x84]
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x18]
CALL 0x00032b20
MOV EAX,dword ptr [EDI]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0xdc]
FLD qword ptr [EDI + 0x220]
FSTP qword ptr [ESP + 0xa8]
MOV dword ptr [ESP + 0x9c],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP + 0xa0],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [EDI + 0x294]
MOV dword ptr [ESP + 0xa4],EAX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
TEST ECX,ECX
JZ 0x000ea7f5
MOV EAX,dword ptr [EDI + 0x2a8]
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX + 0x8]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0xac]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0xb4]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x28]
FSTP qword ptr [ESP + 0xbc]
TEST EDX,EDX
JZ 0x000ea7ba
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ECX + EDX*0x8]
FSTP qword ptr [ESP + 0xc4]
MOV ECX,dword ptr [EAX + 0x34]
TEST ECX,ECX
JZ 0x000ea7dd
MOV EDX,dword ptr [EAX + 0x38]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EDX*0x8]
MOV dword ptr [ESP + 0x94],0x4
FSTP qword ptr [ESP + 0xcc]
MOV EDX,dword ptr [EAX + 0x40]
TEST EDX,EDX
JZ 0x000ea7f5
MOV EAX,dword ptr [EAX + 0x44]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EAX*0x8]
FSTP qword ptr [ESP + 0xd4]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x000ea1f0
MOV EDX,dword ptr [EBP + 0x1c]
TEST EAX,EAX
JZ 0x000ea638
CMP EDX,dword ptr [ESP + 0x14]
JG 0x000ead45
SUB dword ptr [ESP + 0x20],0x1
MOV EAX,dword ptr [ESP + 0x20]
CMP EAX,-0x1
JNZ 0x000ea5d8
MOV EAX,dword ptr [ESP + 0x20]
SUB EAX,dword ptr [ESP + 0x1c]
ADD EAX,0x1
TEST EDX,EDX
MOV dword ptr [ESP + 0x2c],EAX
JLE 0x000ead59
MOV dword ptr [ESP + 0x20],0x0
NOP
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [ESP + 0x34]
PUSH 0x0
PUSH EBP
CALL 0x00030e70
ADD ESP,0x18
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
MOV ESI,EAX
PUSH dword ptr [EDI + 0x18]
PUSH dword ptr [ESP + 0x34]
PUSH 0x0
PUSH EDI
CALL 0x00030e70
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x20
TEST ESI,ESI
JZ 0x000ead3d
TEST EAX,EAX
JZ 0x000ead3d
MOV EAX,dword ptr [EBP + 0x18]
TEST EAX,EAX
JLE 0x000eaa96
MOV dword ptr [ESP + 0x14],0x0
JMP 0x000ea8db
MOV EAX,dword ptr [EBP + 0x298]
MOV ECX,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x14],0x1
LEA ESI,[ESI + EAX*0x8]
MOV EAX,dword ptr [EDI + 0x298]
LEA EAX,[ECX + EAX*0x8]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x14]
CMP EDX,EAX
JLE 0x000eaa96
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x00032b20
MOV EAX,dword ptr [EBP]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0x8c]
FLD qword ptr [EBP + 0x220]
FSTP qword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESP + 0x60],EAX
MOV EAX,dword ptr [EBP + 0x294]
MOV dword ptr [ESP + 0x54],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x000ea98a
MOV EAX,dword ptr [EBP + 0x2a8]
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0x28]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0x5c]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0x64]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x6c]
TEST ECX,ECX
JZ 0x000ea95d
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x74]
MOV EDX,dword ptr [EAX + 0x34]
TEST EDX,EDX
JZ 0x000ea976
MOV EDX,dword ptr [EAX + 0x38]
FLD qword ptr [ESI + EDX*0x8]
MOV dword ptr [ESP + 0x44],0x4
FSTP qword ptr [ESP + 0x7c]
MOV ECX,dword ptr [EAX + 0x40]
TEST ECX,ECX
JZ 0x000ea98a
MOV EAX,dword ptr [EAX + 0x44]
FLD qword ptr [ESI + EAX*0x8]
FSTP qword ptr [ESP + 0x84]
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x18]
CALL 0x00032b20
MOV EAX,dword ptr [EDI]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0xdc]
FLD qword ptr [EDI + 0x220]
FSTP qword ptr [ESP + 0xa8]
MOV dword ptr [ESP + 0x9c],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP + 0xa0],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [EDI + 0x294]
MOV dword ptr [ESP + 0xa4],EAX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
TEST EDX,EDX
JZ 0x000eaa6d
MOV EAX,dword ptr [EDI + 0x2a8]
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX + 0x8]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0xac]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0xb4]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x28]
FSTP qword ptr [ESP + 0xbc]
TEST EDX,EDX
JZ 0x000eaa32
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ECX + EDX*0x8]
FSTP qword ptr [ESP + 0xc4]
MOV ECX,dword ptr [EAX + 0x34]
TEST ECX,ECX
JZ 0x000eaa55
MOV EDX,dword ptr [EAX + 0x38]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EDX*0x8]
MOV dword ptr [ESP + 0x94],0x4
FSTP qword ptr [ESP + 0xcc]
MOV EDX,dword ptr [EAX + 0x40]
TEST EDX,EDX
JZ 0x000eaa6d
MOV EAX,dword ptr [EAX + 0x44]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EAX*0x8]
FSTP qword ptr [ESP + 0xd4]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x000ea1f0
MOV EDX,dword ptr [EBP + 0x18]
TEST EAX,EAX
JZ 0x000ea8b0
CMP EDX,dword ptr [ESP + 0x14]
JG 0x000ead3d
ADD dword ptr [ESP + 0x20],0x1
MOV EDX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [ESP + 0x20]
CMP EDX,EAX
JG 0x000ea850
SUB EDX,0x1
MOV dword ptr [ESP + 0x24],EDX
JS 0x000ead14
MOV ESI,ESI
LEA EDI,[EDI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
PUSH EBP
CALL 0x00030e70
ADD ESP,0x18
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
MOV ESI,EAX
PUSH dword ptr [EDI + 0x18]
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
PUSH EDI
CALL 0x00030e70
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x20
TEST ESI,ESI
JZ 0x000ead14
TEST EAX,EAX
JZ 0x000ead14
MOV EAX,dword ptr [EBP + 0x18]
TEST EAX,EAX
JLE 0x000ead02
MOV dword ptr [ESP + 0x14],0x0
JMP 0x000eab4b
MOV EAX,dword ptr [EBP + 0x298]
MOV ECX,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x14],0x1
LEA ESI,[ESI + EAX*0x8]
MOV EAX,dword ptr [EDI + 0x298]
LEA EAX,[ECX + EAX*0x8]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x14]
CMP EDX,EAX
JLE 0x000ead02
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x00032b20
MOV EAX,dword ptr [EBP]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0x8c]
FLD qword ptr [EBP + 0x220]
FSTP qword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESP + 0x60],EAX
MOV EAX,dword ptr [EBP + 0x294]
MOV dword ptr [ESP + 0x54],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x000eabfa
MOV EAX,dword ptr [EBP + 0x2a8]
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0x28]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0x5c]
FLD qword ptr [ESI + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0x64]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x6c]
TEST ECX,ECX
JZ 0x000eabcd
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ESI + EDX*0x8]
FSTP qword ptr [ESP + 0x74]
MOV EDX,dword ptr [EAX + 0x34]
TEST EDX,EDX
JZ 0x000eabe6
MOV EDX,dword ptr [EAX + 0x38]
FLD qword ptr [ESI + EDX*0x8]
MOV dword ptr [ESP + 0x44],0x4
FSTP qword ptr [ESP + 0x7c]
MOV ECX,dword ptr [EAX + 0x40]
TEST ECX,ECX
JZ 0x000eabfa
MOV EAX,dword ptr [EAX + 0x44]
FLD qword ptr [ESI + EAX*0x8]
FSTP qword ptr [ESP + 0x84]
SUB ESP,0x4
PUSH 0x50
PUSH 0x0
PUSH dword ptr [ESP + 0x18]
CALL 0x00032b20
MOV EAX,dword ptr [EDI]
FLD dword ptr [EBX + 0xffec6710]
FSTP qword ptr [ESP + 0xdc]
FLD qword ptr [EDI + 0x220]
FSTP qword ptr [ESP + 0xa8]
MOV dword ptr [ESP + 0x9c],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP + 0xa0],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [EDI + 0x294]
MOV dword ptr [ESP + 0xa4],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x000eacdd
MOV EAX,dword ptr [EDI + 0x2a8]
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX + 0x8]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x14]
FSTP qword ptr [ESP + 0xac]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x20]
FSTP qword ptr [ESP + 0xb4]
FLD qword ptr [ECX + EDX*0x8]
MOV EDX,dword ptr [EAX + 0x28]
FSTP qword ptr [ESP + 0xbc]
TEST EDX,EDX
JZ 0x000eaca2
MOV EDX,dword ptr [EAX + 0x2c]
FLD qword ptr [ECX + EDX*0x8]
FSTP qword ptr [ESP + 0xc4]
MOV ECX,dword ptr [EAX + 0x34]
TEST ECX,ECX
JZ 0x000eacc5
MOV EDX,dword ptr [EAX + 0x38]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EDX*0x8]
MOV dword ptr [ESP + 0x94],0x4
FSTP qword ptr [ESP + 0xcc]
MOV EDX,dword ptr [EAX + 0x40]
TEST EDX,EDX
JZ 0x000eacdd
MOV EAX,dword ptr [EAX + 0x44]
MOV ECX,dword ptr [ESP + 0x10]
FLD qword ptr [ECX + EAX*0x8]
FSTP qword ptr [ESP + 0xd4]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x000ea1f0
MOV EDX,dword ptr [EBP + 0x18]
TEST EAX,EAX
JZ 0x000eab20
CMP EDX,dword ptr [ESP + 0x14]
JG 0x000ead14
SUB dword ptr [ESP + 0x24],0x1
MOV EAX,dword ptr [ESP + 0x24]
CMP EAX,-0x1
JNZ 0x000eaac0
MOV ESI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x2c]
MOV EBX,dword ptr [ESP + 0x20]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESI + 0xc],EBX
SUB EAX,EBX
ADD EAX,0x1
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESI + 0x8],EAX
JMP 0x000ea593
MOV EDX,dword ptr [EBP + 0x1c]
JMP 0x000eaaaa
MOV EAX,dword ptr [ESP + 0x20]
SUB EAX,dword ptr [ESP + 0x1c]
ADD EAX,0x1
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x000ea847
MOV dword ptr [ESP + 0x20],0x0
JMP 0x000eaaaa
CALL 0x0029eab0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint * __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return param_1;\n}\n\n" comment (function_definition "int * __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return param_1;\n}" primitive_type (pointer_declarator "* __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" identifier (parameter_list "(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return param_1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined4 local_bc;" type_identifier identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined8 local_b4;" type_identifier identifier ;) (declaration "undefined4 local_ac;" type_identifier identifier ;) (declaration "undefined8 local_a0;" type_identifier identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "undefined8 local_64;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "double local_30;" primitive_type identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xea2bd;" (assignment_expression "uStack_14 = 0xea2bd" 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) ))))) ;) (expression_statement "GetPixelInfo(param_2,&local_c0);" (call_expression "GetPixelInfo(param_2,&local_c0)" identifier (argument_list "(param_2,&local_c0)" ( identifier , (pointer_expression "&local_c0" & identifier) ))) ;) (expression_statement "GetPixelInfo(param_3,&local_70);" (call_expression "GetPixelInfo(param_3,&local_70)" identifier (argument_list "(param_3,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) ))) ;) (if_statement "if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }" if (parenthesized_expression "(0 < (int)param_2[6])" ( (binary_expression "0 < (int)param_2[6]" number_literal < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);" do (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5)" identifier = (call_expression "GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5)" identifier (argument_list "(param_2,local_e0,0,1,param_2[7],param_5)" ( identifier , identifier , number_literal , number_literal , (subscript_expression "param_2[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5)" identifier = (call_expression "GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5)" identifier (argument_list "(param_3,local_e0,0,1,param_3[7],param_5)" ( identifier , identifier , number_literal , number_literal , (subscript_expression "param_3[7]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" { (labeled_statement "LAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" statement_identifier : (if_statement "if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" if (parenthesized_expression "(local_e0 < (int)param_2[6])" ( (binary_expression "local_e0 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" { (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "local_dc = param_2[6] + -1;" (assignment_expression "local_dc = param_2[6] + -1" identifier = (binary_expression "param_2[6] + -1" (subscript_expression "param_2[6]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_000ea5d8;" goto statement_identifier ;) }))) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }" if (parenthesized_expression "(0 < (int)param_2[7])" ( (binary_expression "0 < (int)param_2[7]" number_literal < (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ]))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);" do (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }" { (if_statement "if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;" if (parenthesized_expression "(local_e8 < (int)param_2[7])" ( (binary_expression "local_e8 < (int)param_2[7]" identifier < (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000ea5c0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < (int)param_2[7])" ( (binary_expression "local_e8 < (int)param_2[7]" identifier < (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_e0 = local_e0 + 1;" (assignment_expression "local_e0 = local_e0 + 1" identifier = (binary_expression "local_e0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_e0 < (int)param_2[6])" ( (binary_expression "local_e0 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = -1;" (assignment_expression "param_1[2] = -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = -1;" (assignment_expression "param_1[3] = -1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_000ea593;" goto statement_identifier ;) (labeled_statement "LAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" statement_identifier : (do_statement "do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" do (compound_statement "{\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5)" identifier = (call_expression "GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5)" identifier (argument_list "(param_2,local_dc,0,1,local_d8,param_5)" ( identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5)" identifier = (call_expression "GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5)" identifier (argument_list "(param_3,local_dc,0,1,param_3[7],param_5)" ( identifier , identifier , number_literal , number_literal , (subscript_expression "param_3[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) break;" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }" if (parenthesized_expression "(0 < local_d8)" ( (binary_expression "0 < local_d8" number_literal < identifier) )) (compound_statement "{\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);" do (compound_statement "{\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" { (if_statement "if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" if (parenthesized_expression "(local_e8 < local_d8)" ( (binary_expression "local_e8 < local_d8" identifier < identifier) )) (compound_statement "{\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" { (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" identifier = (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" ( (binary_expression "local_dc - local_e0" identifier - identifier) )) + number_literal)) ;) (goto_statement "goto LAB_000ea847;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < local_d8)" ( (binary_expression "local_e8 < local_d8" identifier < identifier) )) ;) })) (expression_statement "local_dc = local_dc + -1;" (assignment_expression "local_dc = local_dc + -1" identifier = (binary_expression "local_dc + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_dc != -1)" ( (binary_expression "local_dc != -1" identifier != number_literal) )) ;)) (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" identifier = (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" ( (binary_expression "local_dc - local_e0" identifier - identifier) )) + number_literal)) ;) (if_statement "if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" if (parenthesized_expression "(local_d8 < 1)" ( (binary_expression "local_d8 < 1" identifier < number_literal) )) (compound_statement "{\n    local_dc = 0;\n  }" { (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" else (compound_statement "{\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" { (labeled_statement "LAB_000ea847:\n    local_dc = 0;" statement_identifier : (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;)) (do_statement "do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);" do (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5)" identifier (argument_list "(param_2,0,local_dc,param_2[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5)" identifier (argument_list "(param_3,0,local_dc,param_3[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_3[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }" { (labeled_statement "LAB_000ead3d:\n        local_d8 = param_2[7];" statement_identifier : (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;)) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" if (parenthesized_expression "(0 < (int)param_2[6])" ( (binary_expression "0 < (int)param_2[6]" number_literal < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);" do (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }" { (if_statement "if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;" if (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000ead3d;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(local_dc < local_d8)" ( (binary_expression "local_dc < local_d8" 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)) ;) (if_statement "if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" if (parenthesized_expression "(-1 < local_d8)" ( (binary_expression "-1 < local_d8" number_literal < identifier) )) (compound_statement "{\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" { (while_statement "while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5)" identifier (argument_list "(param_2,0,local_d8,param_2[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5)" identifier (argument_list "(param_3,0,local_d8,param_3[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_3[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) break;" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" if (parenthesized_expression "(0 < (int)param_2[6])" ( (binary_expression "0 < (int)param_2[6]" number_literal < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);" do (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }" { (if_statement "if (local_e8 < (int)param_2[6]) goto LAB_000ead14;" if (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000ead14;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_d8 = local_d8 + -1;" (assignment_expression "local_d8 = local_d8 + -1" identifier = (binary_expression "local_d8 + -1" identifier + number_literal)) ;) (if_statement "if (local_d8 == -1) break;" if (parenthesized_expression "(local_d8 == -1)" ( (binary_expression "local_d8 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (labeled_statement "LAB_000ead14:\n  *param_1 = local_d0;" statement_identifier : (expression_statement "*param_1 = local_d0;" (assignment_expression "*param_1 = local_d0" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[3] = local_dc;" (assignment_expression "param_1[3] = local_dc" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[1] = (local_d8 - local_dc) + 1;" (assignment_expression "param_1[1] = (local_d8 - local_dc) + 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(local_d8 - local_dc) + 1" (parenthesized_expression "(local_d8 - local_dc)" ( (binary_expression "local_d8 - local_dc" identifier - identifier) )) + number_literal)) ;) (expression_statement "param_1[2] = local_e0;" (assignment_expression "param_1[2] = local_e0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" { comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\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\nRectangleInfo * __regparm3\nCompareImagesBounds(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,\n                   LayerMethod method,ExceptionInfo *exception)\n\n{\n  int iVar1;\n  PixelChannelMap *pPVar2;\n  Quantum *pQVar3;\n  MagickBooleanType MVar4;\n  size_t rows;\n  int in_GS_OFFSET;\n  Quantum *local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  size_t local_d0;\n  PixelInfo pixel1;\n  PixelInfo pixel2;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(image1,&pixel1);\n  GetPixelInfo(image2,&pixel2);\n  if (0 < (int)image1->columns) {\n    local_e0 = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);\n      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)image1->columns);\n  }\n  __return_storage_ptr__->width = 1;\n  __return_storage_ptr__->height = 1;\n  __return_storage_ptr__->x = -1;\n  __return_storage_ptr__->y = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);\n    local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);\n    rows = image1->rows;\n    if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n    if (0 < (int)rows) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if ((int)rows < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    } while (local_dc < (int)rows);\n  }\n  local_d8 = rows - 1;\n  if (-1 < local_d8) {\n    while( true ) {\n      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  __return_storage_ptr__->width = local_d0;\n  __return_storage_ptr__->y = local_dc;\n  __return_storage_ptr__->height = (local_d8 - local_dc) + 1;\n  __return_storage_ptr__->x = local_e0;\nLAB_000ea593:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return __return_storage_ptr__;\n}\n\n" comment comment comment comment comment comment (ERROR "RectangleInfo * __regparm3\nCompareImagesBounds(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,\n                   LayerMethod method,ExceptionInfo *exception)" (binary_expression "RectangleInfo * __regparm3\nCompareImagesBounds(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,\n                   LayerMethod method,ExceptionInfo *exception)" identifier * (ERROR "__regparm3" identifier) (call_expression "CompareImagesBounds(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,\n                   LayerMethod method,ExceptionInfo *exception)" identifier (argument_list "(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,\n                   LayerMethod method,ExceptionInfo *exception)" ( (binary_expression "RectangleInfo *__return_storage_ptr__" identifier * identifier) , (binary_expression "Image *image1" identifier * identifier) , (binary_expression "Image *image2" identifier * identifier) , identifier (ERROR "method" identifier) , (binary_expression "ExceptionInfo *exception" identifier * identifier) ))))) (compound_statement "{\n  int iVar1;\n  PixelChannelMap *pPVar2;\n  Quantum *pQVar3;\n  MagickBooleanType MVar4;\n  size_t rows;\n  int in_GS_OFFSET;\n  Quantum *local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  size_t local_d0;\n  PixelInfo pixel1;\n  PixelInfo pixel2;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(image1,&pixel1);\n  GetPixelInfo(image2,&pixel2);\n  if (0 < (int)image1->columns) {\n    local_e0 = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);\n      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)image1->columns);\n  }\n  __return_storage_ptr__->width = 1;\n  __return_storage_ptr__->height = 1;\n  __return_storage_ptr__->x = -1;\n  __return_storage_ptr__->y = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);\n    local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);\n    rows = image1->rows;\n    if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n    if (0 < (int)rows) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if ((int)rows < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    } while (local_dc < (int)rows);\n  }\n  local_d8 = rows - 1;\n  if (-1 < local_d8) {\n    while( true ) {\n      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  __return_storage_ptr__->width = local_d0;\n  __return_storage_ptr__->y = local_dc;\n  __return_storage_ptr__->height = (local_d8 - local_dc) + 1;\n  __return_storage_ptr__->x = local_e0;\nLAB_000ea593:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return __return_storage_ptr__;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "Quantum *pQVar3;" type_identifier (pointer_declarator "*pQVar3" * identifier) ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "size_t rows;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "Quantum *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "size_t local_d0;" primitive_type identifier ;) (declaration "PixelInfo pixel1;" type_identifier identifier ;) (declaration "PixelInfo pixel2;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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) ))))) ;) (expression_statement "GetPixelInfo(image1,&pixel1);" (call_expression "GetPixelInfo(image1,&pixel1)" identifier (argument_list "(image1,&pixel1)" ( identifier , (pointer_expression "&pixel1" & identifier) ))) ;) (expression_statement "GetPixelInfo(image2,&pixel2);" (call_expression "GetPixelInfo(image2,&pixel2)" identifier (argument_list "(image2,&pixel2)" ( identifier , (pointer_expression "&pixel2" & identifier) ))) ;) (if_statement "if (0 < (int)image1->columns) {\n    local_e0 = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);\n      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)image1->columns);\n  }" if (parenthesized_expression "(0 < (int)image1->columns)" ( (binary_expression "0 < (int)image1->columns" number_literal < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) (compound_statement "{\n    local_e0 = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);\n      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)image1->columns);\n  }" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (do_statement "do {\n      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);\n      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)image1->columns);" do (compound_statement "{\n      pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);\n      local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }\n      local_e0 = local_e0 + 1;\n    }" { (expression_statement "pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception);" (assignment_expression "pQVar3 = GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception)" identifier = (call_expression "GetVirtualPixels(image1,local_e0,0,1,image1->rows,exception)" identifier (argument_list "(image1,local_e0,0,1,image1->rows,exception)" ( identifier , identifier , number_literal , number_literal , (field_expression "image1->rows" identifier -> field_identifier) , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception);" (assignment_expression "local_ec = GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception)" identifier = (call_expression "GetVirtualPixels(image2,local_e0,0,1,image2->rows,exception)" identifier (argument_list "(image2,local_e0,0,1,image2->rows,exception)" ( identifier , identifier , number_literal , number_literal , (field_expression "image2->rows" identifier -> field_identifier) , identifier )))) ;) (if_statement "if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" if (parenthesized_expression "((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0))" ( (binary_expression "(pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)" (parenthesized_expression "(pQVar3 == (Quantum *)0x0)" ( (binary_expression "pQVar3 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_ec == (Quantum *)0x0)" ( (binary_expression "local_ec == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" { (labeled_statement "LAB_000ea5c0:\n        if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }" statement_identifier : (if_statement "if (local_e0 < (int)image1->columns) {\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }" if (parenthesized_expression "(local_e0 < (int)image1->columns)" ( (binary_expression "local_e0 < (int)image1->columns" identifier < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) (compound_statement "{\n          rows = image1->rows;\n          local_dc = image1->columns - 1;\n          goto LAB_000ea5d8;\n        }" { (expression_statement "rows = image1->rows;" (assignment_expression "rows = image1->rows" identifier = (field_expression "image1->rows" identifier -> field_identifier)) ;) (expression_statement "local_dc = image1->columns - 1;" (assignment_expression "local_dc = image1->columns - 1" identifier = (binary_expression "image1->columns - 1" (field_expression "image1->columns" identifier -> field_identifier) - number_literal)) ;) (goto_statement "goto LAB_000ea5d8;" goto statement_identifier ;) }))) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)image1->rows) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }" if (parenthesized_expression "(0 < (int)image1->rows)" ( (binary_expression "0 < (int)image1->rows" number_literal < (cast_expression "(int)image1->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->rows" identifier -> field_identifier))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->rows);" do (compound_statement "{\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        }" { (expression_statement "ResetMagickMemory(&pixel1,0,0x50);" (call_expression "ResetMagickMemory(&pixel1,0,0x50)" identifier (argument_list "(&pixel1,0,0x50)" ( (pointer_expression "&pixel1" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel1.storage_class = image1->storage_class;" (assignment_expression "pixel1.storage_class = image1->storage_class" (field_expression "pixel1.storage_class" identifier . field_identifier) = (field_expression "image1->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel1.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel1.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel1.fuzz = image1->fuzz;" (assignment_expression "pixel1.fuzz = image1->fuzz" (field_expression "pixel1.fuzz" identifier . field_identifier) = (field_expression "image1->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel1.colorspace = image1->colorspace;" (assignment_expression "pixel1.colorspace = image1->colorspace" (field_expression "pixel1.colorspace" identifier . field_identifier) = (field_expression "image1->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel1.depth = image1->depth;" (assignment_expression "pixel1.depth = image1->depth" (field_expression "pixel1.depth" identifier . field_identifier) = (field_expression "image1->depth" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha_trait = image1->alpha_trait;" (assignment_expression "pixel1.alpha_trait = image1->alpha_trait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = (field_expression "image1->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }" if (parenthesized_expression "(pQVar3 != (Quantum *)0x0)" ( (binary_expression "pQVar3 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }" { (expression_statement "pPVar2 = image1->channel_map;" (assignment_expression "pPVar2 = image1->channel_map" identifier = (field_expression "image1->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel1.red = pQVar3[pPVar2->offset];" (assignment_expression "pixel1.red = pQVar3[pPVar2->offset]" (field_expression "pixel1.red" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel1.green = pQVar3[pPVar2[1].offset];" (assignment_expression "pixel1.green = pQVar3[pPVar2[1].offset]" (field_expression "pixel1.green" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.blue = pQVar3[pPVar2[2].offset];" (assignment_expression "pixel1.blue = pQVar3[pPVar2[2].offset]" (field_expression "pixel1.blue" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }" { (expression_statement "pixel1.black = pQVar3[pPVar2[3].offset];" (assignment_expression "pixel1.black = pQVar3[pPVar2[3].offset]" (field_expression "pixel1.black" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }" { (expression_statement "pixel1.alpha = pQVar3[pPVar2[4].offset];" (assignment_expression "pixel1.alpha = pQVar3[pPVar2[4].offset]" (field_expression "pixel1.alpha" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel1.alpha_trait = BlendPixelTrait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }" { (expression_statement "pixel1.index = pQVar3[pPVar2[5].offset];" (assignment_expression "pixel1.index = pQVar3[pPVar2[5].offset]" (field_expression "pixel1.index" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "ResetMagickMemory(&pixel2,0,0x50);" (call_expression "ResetMagickMemory(&pixel2,0,0x50)" identifier (argument_list "(&pixel2,0,0x50)" ( (pointer_expression "&pixel2" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel2.storage_class = image2->storage_class;" (assignment_expression "pixel2.storage_class = image2->storage_class" (field_expression "pixel2.storage_class" identifier . field_identifier) = (field_expression "image2->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel2.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel2.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel2.fuzz = image2->fuzz;" (assignment_expression "pixel2.fuzz = image2->fuzz" (field_expression "pixel2.fuzz" identifier . field_identifier) = (field_expression "image2->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel2.colorspace = image2->colorspace;" (assignment_expression "pixel2.colorspace = image2->colorspace" (field_expression "pixel2.colorspace" identifier . field_identifier) = (field_expression "image2->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel2.depth = image2->depth;" (assignment_expression "pixel2.depth = image2->depth" (field_expression "pixel2.depth" identifier . field_identifier) = (field_expression "image2->depth" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha_trait = image2->alpha_trait;" (assignment_expression "pixel2.alpha_trait = image2->alpha_trait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = (field_expression "image2->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }" if (parenthesized_expression "(local_ec != (Quantum *)0x0)" ( (binary_expression "local_ec != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }" { (expression_statement "pPVar2 = image2->channel_map;" (assignment_expression "pPVar2 = image2->channel_map" identifier = (field_expression "image2->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel2.red = local_ec[pPVar2->offset];" (assignment_expression "pixel2.red = local_ec[pPVar2->offset]" (field_expression "pixel2.red" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel2.green = local_ec[pPVar2[1].offset];" (assignment_expression "pixel2.green = local_ec[pPVar2[1].offset]" (field_expression "pixel2.green" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.blue = local_ec[pPVar2[2].offset];" (assignment_expression "pixel2.blue = local_ec[pPVar2[2].offset]" (field_expression "pixel2.blue" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }" { (expression_statement "pixel2.black = local_ec[pPVar2[3].offset];" (assignment_expression "pixel2.black = local_ec[pPVar2[3].offset]" (field_expression "pixel2.black" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }" { (expression_statement "pixel2.alpha = local_ec[pPVar2[4].offset];" (assignment_expression "pixel2.alpha = local_ec[pPVar2[4].offset]" (field_expression "pixel2.alpha" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel2.alpha_trait = BlendPixelTrait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }" { (expression_statement "pixel2.index = local_ec[pPVar2[5].offset];" (assignment_expression "pixel2.index = local_ec[pPVar2[5].offset]" (field_expression "pixel2.index" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "MVar4 = ComparePixels(method,&pixel1,&pixel2);" (assignment_expression "MVar4 = ComparePixels(method,&pixel1,&pixel2)" identifier = (call_expression "ComparePixels(method,&pixel1,&pixel2)" identifier (argument_list "(method,&pixel1,&pixel2)" ( identifier , (pointer_expression "&pixel1" & identifier) , (pointer_expression "&pixel2" & identifier) )))) ;) (if_statement "if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }" if (parenthesized_expression "(MVar4 != MagickFalse)" ( (binary_expression "MVar4 != MagickFalse" identifier != identifier) )) (compound_statement "{\n            if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;\n            break;\n          }" { (if_statement "if (local_e8 < (int)image1->rows) goto LAB_000ea5c0;" if (parenthesized_expression "(local_e8 < (int)image1->rows)" ( (binary_expression "local_e8 < (int)image1->rows" identifier < (cast_expression "(int)image1->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->rows" identifier -> field_identifier))) )) (goto_statement "goto LAB_000ea5c0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "pQVar3 = pQVar3 + image1->number_channels;" (assignment_expression "pQVar3 = pQVar3 + image1->number_channels" identifier = (binary_expression "pQVar3 + image1->number_channels" identifier + (field_expression "image1->number_channels" identifier -> field_identifier))) ;) (expression_statement "local_ec = local_ec + image2->number_channels;" (assignment_expression "local_ec = local_ec + image2->number_channels" identifier = (binary_expression "local_ec + image2->number_channels" identifier + (field_expression "image2->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_e8 < (int)image1->rows)" ( (binary_expression "local_e8 < (int)image1->rows" identifier < (cast_expression "(int)image1->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->rows" identifier -> field_identifier))) )) ;) })) (expression_statement "local_e0 = local_e0 + 1;" (assignment_expression "local_e0 = local_e0 + 1" identifier = (binary_expression "local_e0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_e0 < (int)image1->columns)" ( (binary_expression "local_e0 < (int)image1->columns" identifier < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "__return_storage_ptr__->width = 1;" (assignment_expression "__return_storage_ptr__->width = 1" (field_expression "__return_storage_ptr__->width" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->height = 1;" (assignment_expression "__return_storage_ptr__->height = 1" (field_expression "__return_storage_ptr__->height" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->x = -1;" (assignment_expression "__return_storage_ptr__->x = -1" (field_expression "__return_storage_ptr__->x" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->y = -1;" (assignment_expression "__return_storage_ptr__->y = -1" (field_expression "__return_storage_ptr__->y" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000ea593;" goto statement_identifier ;) (labeled_statement "LAB_000ea5d8:\n  do {\n    pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);\n    local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);\n    rows = image1->rows;\n    if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n    if (0 < (int)rows) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" statement_identifier : (do_statement "do {\n    pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);\n    local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);\n    rows = image1->rows;\n    if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n    if (0 < (int)rows) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" do (compound_statement "{\n    pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);\n    local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);\n    rows = image1->rows;\n    if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n    if (0 < (int)rows) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }\n    local_dc = local_dc + -1;\n  }" { (expression_statement "pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception);" (assignment_expression "pQVar3 = GetVirtualPixels(image1,local_dc,0,1,rows,exception)" identifier = (call_expression "GetVirtualPixels(image1,local_dc,0,1,rows,exception)" identifier (argument_list "(image1,local_dc,0,1,rows,exception)" ( identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception);" (assignment_expression "local_ec = GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception)" identifier = (call_expression "GetVirtualPixels(image2,local_dc,0,1,image2->rows,exception)" identifier (argument_list "(image2,local_dc,0,1,image2->rows,exception)" ( identifier , identifier , number_literal , number_literal , (field_expression "image2->rows" identifier -> field_identifier) , identifier )))) ;) (expression_statement "rows = image1->rows;" (assignment_expression "rows = image1->rows" identifier = (field_expression "image1->rows" identifier -> field_identifier)) ;) (if_statement "if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;" if (parenthesized_expression "((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0))" ( (binary_expression "(pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)" (parenthesized_expression "(pQVar3 == (Quantum *)0x0)" ( (binary_expression "pQVar3 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_ec == (Quantum *)0x0)" ( (binary_expression "local_ec == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (0 < (int)rows) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }" if (parenthesized_expression "(0 < (int)rows)" ( (binary_expression "0 < (int)rows" number_literal < (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);\n    }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      } while (local_e8 < (int)rows);" do (compound_statement "{\n        ResetMagickMemory(&pixel1,0,0x50);\n        pixel1.storage_class = image1->storage_class;\n        pixel1.alpha = (MagickRealType)DAT_0029f710;\n        pixel1.fuzz = image1->fuzz;\n        pixel1.colorspace = image1->colorspace;\n        pixel1.depth = image1->depth;\n        pixel1.alpha_trait = image1->alpha_trait;\n        if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }\n        ResetMagickMemory(&pixel2,0,0x50);\n        pixel2.storage_class = image2->storage_class;\n        pixel2.alpha = (MagickRealType)DAT_0029f710;\n        pixel2.fuzz = image2->fuzz;\n        pixel2.colorspace = image2->colorspace;\n        pixel2.depth = image2->depth;\n        pixel2.alpha_trait = image2->alpha_trait;\n        if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }\n        MVar4 = ComparePixels(method,&pixel1,&pixel2);\n        rows = image1->rows;\n        if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        pQVar3 = pQVar3 + image1->number_channels;\n        local_ec = local_ec + image2->number_channels;\n      }" { (expression_statement "ResetMagickMemory(&pixel1,0,0x50);" (call_expression "ResetMagickMemory(&pixel1,0,0x50)" identifier (argument_list "(&pixel1,0,0x50)" ( (pointer_expression "&pixel1" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel1.storage_class = image1->storage_class;" (assignment_expression "pixel1.storage_class = image1->storage_class" (field_expression "pixel1.storage_class" identifier . field_identifier) = (field_expression "image1->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel1.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel1.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel1.fuzz = image1->fuzz;" (assignment_expression "pixel1.fuzz = image1->fuzz" (field_expression "pixel1.fuzz" identifier . field_identifier) = (field_expression "image1->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel1.colorspace = image1->colorspace;" (assignment_expression "pixel1.colorspace = image1->colorspace" (field_expression "pixel1.colorspace" identifier . field_identifier) = (field_expression "image1->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel1.depth = image1->depth;" (assignment_expression "pixel1.depth = image1->depth" (field_expression "pixel1.depth" identifier . field_identifier) = (field_expression "image1->depth" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha_trait = image1->alpha_trait;" (assignment_expression "pixel1.alpha_trait = image1->alpha_trait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = (field_expression "image1->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (pQVar3 != (Quantum *)0x0) {\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }" if (parenthesized_expression "(pQVar3 != (Quantum *)0x0)" ( (binary_expression "pQVar3 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pPVar2 = image1->channel_map;\n          pixel1.red = pQVar3[pPVar2->offset];\n          pixel1.green = pQVar3[pPVar2[1].offset];\n          pixel1.blue = pQVar3[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }\n        }" { (expression_statement "pPVar2 = image1->channel_map;" (assignment_expression "pPVar2 = image1->channel_map" identifier = (field_expression "image1->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel1.red = pQVar3[pPVar2->offset];" (assignment_expression "pixel1.red = pQVar3[pPVar2->offset]" (field_expression "pixel1.red" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel1.green = pQVar3[pPVar2[1].offset];" (assignment_expression "pixel1.green = pQVar3[pPVar2[1].offset]" (field_expression "pixel1.green" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.blue = pQVar3[pPVar2[2].offset];" (assignment_expression "pixel1.blue = pQVar3[pPVar2[2].offset]" (field_expression "pixel1.blue" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            pixel1.black = pQVar3[pPVar2[3].offset];\n          }" { (expression_statement "pixel1.black = pQVar3[pPVar2[3].offset];" (assignment_expression "pixel1.black = pQVar3[pPVar2[3].offset]" (field_expression "pixel1.black" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            pixel1.alpha = pQVar3[pPVar2[4].offset];\n            pixel1.alpha_trait = BlendPixelTrait;\n          }" { (expression_statement "pixel1.alpha = pQVar3[pPVar2[4].offset];" (assignment_expression "pixel1.alpha = pQVar3[pPVar2[4].offset]" (field_expression "pixel1.alpha" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel1.alpha_trait = BlendPixelTrait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            pixel1.index = pQVar3[pPVar2[5].offset];\n          }" { (expression_statement "pixel1.index = pQVar3[pPVar2[5].offset];" (assignment_expression "pixel1.index = pQVar3[pPVar2[5].offset]" (field_expression "pixel1.index" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "ResetMagickMemory(&pixel2,0,0x50);" (call_expression "ResetMagickMemory(&pixel2,0,0x50)" identifier (argument_list "(&pixel2,0,0x50)" ( (pointer_expression "&pixel2" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel2.storage_class = image2->storage_class;" (assignment_expression "pixel2.storage_class = image2->storage_class" (field_expression "pixel2.storage_class" identifier . field_identifier) = (field_expression "image2->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel2.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel2.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel2.fuzz = image2->fuzz;" (assignment_expression "pixel2.fuzz = image2->fuzz" (field_expression "pixel2.fuzz" identifier . field_identifier) = (field_expression "image2->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel2.colorspace = image2->colorspace;" (assignment_expression "pixel2.colorspace = image2->colorspace" (field_expression "pixel2.colorspace" identifier . field_identifier) = (field_expression "image2->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel2.depth = image2->depth;" (assignment_expression "pixel2.depth = image2->depth" (field_expression "pixel2.depth" identifier . field_identifier) = (field_expression "image2->depth" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha_trait = image2->alpha_trait;" (assignment_expression "pixel2.alpha_trait = image2->alpha_trait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = (field_expression "image2->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (local_ec != (Quantum *)0x0) {\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }" if (parenthesized_expression "(local_ec != (Quantum *)0x0)" ( (binary_expression "local_ec != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pPVar2 = image2->channel_map;\n          pixel2.red = local_ec[pPVar2->offset];\n          pixel2.green = local_ec[pPVar2[1].offset];\n          pixel2.blue = local_ec[pPVar2[2].offset];\n          if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }\n          if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }\n          if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }\n        }" { (expression_statement "pPVar2 = image2->channel_map;" (assignment_expression "pPVar2 = image2->channel_map" identifier = (field_expression "image2->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel2.red = local_ec[pPVar2->offset];" (assignment_expression "pixel2.red = local_ec[pPVar2->offset]" (field_expression "pixel2.red" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel2.green = local_ec[pPVar2[1].offset];" (assignment_expression "pixel2.green = local_ec[pPVar2[1].offset]" (field_expression "pixel2.green" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.blue = local_ec[pPVar2[2].offset];" (assignment_expression "pixel2.blue = local_ec[pPVar2[2].offset]" (field_expression "pixel2.blue" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            pixel2.black = local_ec[pPVar2[3].offset];\n          }" { (expression_statement "pixel2.black = local_ec[pPVar2[3].offset];" (assignment_expression "pixel2.black = local_ec[pPVar2[3].offset]" (field_expression "pixel2.black" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            pixel2.alpha = local_ec[pPVar2[4].offset];\n            pixel2.alpha_trait = BlendPixelTrait;\n          }" { (expression_statement "pixel2.alpha = local_ec[pPVar2[4].offset];" (assignment_expression "pixel2.alpha = local_ec[pPVar2[4].offset]" (field_expression "pixel2.alpha" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel2.alpha_trait = BlendPixelTrait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            pixel2.index = local_ec[pPVar2[5].offset];\n          }" { (expression_statement "pixel2.index = local_ec[pPVar2[5].offset];" (assignment_expression "pixel2.index = local_ec[pPVar2[5].offset]" (field_expression "pixel2.index" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "MVar4 = ComparePixels(method,&pixel1,&pixel2);" (assignment_expression "MVar4 = ComparePixels(method,&pixel1,&pixel2)" identifier = (call_expression "ComparePixels(method,&pixel1,&pixel2)" identifier (argument_list "(method,&pixel1,&pixel2)" ( identifier , (pointer_expression "&pixel1" & identifier) , (pointer_expression "&pixel2" & identifier) )))) ;) (expression_statement "rows = image1->rows;" (assignment_expression "rows = image1->rows" identifier = (field_expression "image1->rows" identifier -> field_identifier)) ;) (if_statement "if (MVar4 != MagickFalse) {\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" if (parenthesized_expression "(MVar4 != MagickFalse)" ( (binary_expression "MVar4 != MagickFalse" identifier != identifier) )) (compound_statement "{\n          if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" { (if_statement "if (local_e8 < (int)rows) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" if (parenthesized_expression "(local_e8 < (int)rows)" ( (binary_expression "local_e8 < (int)rows" identifier < (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" { (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" identifier = (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" ( (binary_expression "local_dc - local_e0" identifier - identifier) )) + number_literal)) ;) (goto_statement "goto LAB_000ea847;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "pQVar3 = pQVar3 + image1->number_channels;" (assignment_expression "pQVar3 = pQVar3 + image1->number_channels" identifier = (binary_expression "pQVar3 + image1->number_channels" identifier + (field_expression "image1->number_channels" identifier -> field_identifier))) ;) (expression_statement "local_ec = local_ec + image2->number_channels;" (assignment_expression "local_ec = local_ec + image2->number_channels" identifier = (binary_expression "local_ec + image2->number_channels" identifier + (field_expression "image2->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_e8 < (int)rows)" ( (binary_expression "local_e8 < (int)rows" identifier < (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_dc = local_dc + -1;" (assignment_expression "local_dc = local_dc + -1" identifier = (binary_expression "local_dc + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_dc != -1)" ( (binary_expression "local_dc != -1" identifier != number_literal) )) ;)) (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" identifier = (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" ( (binary_expression "local_dc - local_e0" identifier - identifier) )) + number_literal)) ;) (if_statement "if ((int)rows < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    } while (local_dc < (int)rows);\n  }" if (parenthesized_expression "((int)rows < 1)" ( (binary_expression "(int)rows < 1" (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    local_dc = 0;\n  }" { (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    } while (local_dc < (int)rows);\n  }" else (compound_statement "{\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    } while (local_dc < (int)rows);\n  }" { (labeled_statement "LAB_000ea847:\n    local_dc = 0;" statement_identifier : (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;)) (do_statement "do {\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    } while (local_dc < (int)rows);" do (compound_statement "{\n      pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_dc = local_dc + 1;\n      rows = image1->rows;\n    }" { (expression_statement "pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception);" (assignment_expression "pQVar3 = GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image1,0,local_dc,image1->columns,1,exception)" identifier (argument_list "(image1,0,local_dc,image1->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image1->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception);" (assignment_expression "local_ec = GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image2,0,local_dc,image2->columns,1,exception)" identifier (argument_list "(image2,0,local_dc,image2->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image2->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) {\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }" if (parenthesized_expression "((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0))" ( (binary_expression "(pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)" (parenthesized_expression "(pQVar3 == (Quantum *)0x0)" ( (binary_expression "pQVar3 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_ec == (Quantum *)0x0)" ( (binary_expression "local_ec == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_000ead3d:\n        rows = image1->rows;\n        break;\n      }" { (labeled_statement "LAB_000ead3d:\n        rows = image1->rows;" statement_identifier : (expression_statement "rows = image1->rows;" (assignment_expression "rows = image1->rows" identifier = (field_expression "image1->rows" identifier -> field_identifier)) ;)) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }" if (parenthesized_expression "(0 < (int)image1->columns)" ( (binary_expression "0 < (int)image1->columns" number_literal < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);" do (compound_statement "{\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        }" { (expression_statement "ResetMagickMemory(&pixel1,0,0x50);" (call_expression "ResetMagickMemory(&pixel1,0,0x50)" identifier (argument_list "(&pixel1,0,0x50)" ( (pointer_expression "&pixel1" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel1.storage_class = image1->storage_class;" (assignment_expression "pixel1.storage_class = image1->storage_class" (field_expression "pixel1.storage_class" identifier . field_identifier) = (field_expression "image1->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel1.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel1.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel1.fuzz = image1->fuzz;" (assignment_expression "pixel1.fuzz = image1->fuzz" (field_expression "pixel1.fuzz" identifier . field_identifier) = (field_expression "image1->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel1.colorspace = image1->colorspace;" (assignment_expression "pixel1.colorspace = image1->colorspace" (field_expression "pixel1.colorspace" identifier . field_identifier) = (field_expression "image1->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel1.depth = image1->depth;" (assignment_expression "pixel1.depth = image1->depth" (field_expression "pixel1.depth" identifier . field_identifier) = (field_expression "image1->depth" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha_trait = image1->alpha_trait;" (assignment_expression "pixel1.alpha_trait = image1->alpha_trait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = (field_expression "image1->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }" if (parenthesized_expression "(pQVar3 != (Quantum *)0x0)" ( (binary_expression "pQVar3 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }" { (expression_statement "pPVar2 = image1->channel_map;" (assignment_expression "pPVar2 = image1->channel_map" identifier = (field_expression "image1->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel1.red = pQVar3[pPVar2->offset];" (assignment_expression "pixel1.red = pQVar3[pPVar2->offset]" (field_expression "pixel1.red" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel1.green = pQVar3[pPVar2[1].offset];" (assignment_expression "pixel1.green = pQVar3[pPVar2[1].offset]" (field_expression "pixel1.green" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.blue = pQVar3[pPVar2[2].offset];" (assignment_expression "pixel1.blue = pQVar3[pPVar2[2].offset]" (field_expression "pixel1.blue" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }" { (expression_statement "pixel1.black = pQVar3[pPVar2[3].offset];" (assignment_expression "pixel1.black = pQVar3[pPVar2[3].offset]" (field_expression "pixel1.black" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }" { (expression_statement "pixel1.alpha = pQVar3[pPVar2[4].offset];" (assignment_expression "pixel1.alpha = pQVar3[pPVar2[4].offset]" (field_expression "pixel1.alpha" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel1.alpha_trait = BlendPixelTrait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }" { (expression_statement "pixel1.index = pQVar3[pPVar2[5].offset];" (assignment_expression "pixel1.index = pQVar3[pPVar2[5].offset]" (field_expression "pixel1.index" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "ResetMagickMemory(&pixel2,0,0x50);" (call_expression "ResetMagickMemory(&pixel2,0,0x50)" identifier (argument_list "(&pixel2,0,0x50)" ( (pointer_expression "&pixel2" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel2.storage_class = image2->storage_class;" (assignment_expression "pixel2.storage_class = image2->storage_class" (field_expression "pixel2.storage_class" identifier . field_identifier) = (field_expression "image2->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel2.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel2.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel2.fuzz = image2->fuzz;" (assignment_expression "pixel2.fuzz = image2->fuzz" (field_expression "pixel2.fuzz" identifier . field_identifier) = (field_expression "image2->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel2.colorspace = image2->colorspace;" (assignment_expression "pixel2.colorspace = image2->colorspace" (field_expression "pixel2.colorspace" identifier . field_identifier) = (field_expression "image2->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel2.depth = image2->depth;" (assignment_expression "pixel2.depth = image2->depth" (field_expression "pixel2.depth" identifier . field_identifier) = (field_expression "image2->depth" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha_trait = image2->alpha_trait;" (assignment_expression "pixel2.alpha_trait = image2->alpha_trait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = (field_expression "image2->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }" if (parenthesized_expression "(local_ec != (Quantum *)0x0)" ( (binary_expression "local_ec != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }" { (expression_statement "pPVar2 = image2->channel_map;" (assignment_expression "pPVar2 = image2->channel_map" identifier = (field_expression "image2->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel2.red = local_ec[pPVar2->offset];" (assignment_expression "pixel2.red = local_ec[pPVar2->offset]" (field_expression "pixel2.red" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel2.green = local_ec[pPVar2[1].offset];" (assignment_expression "pixel2.green = local_ec[pPVar2[1].offset]" (field_expression "pixel2.green" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.blue = local_ec[pPVar2[2].offset];" (assignment_expression "pixel2.blue = local_ec[pPVar2[2].offset]" (field_expression "pixel2.blue" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }" { (expression_statement "pixel2.black = local_ec[pPVar2[3].offset];" (assignment_expression "pixel2.black = local_ec[pPVar2[3].offset]" (field_expression "pixel2.black" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }" { (expression_statement "pixel2.alpha = local_ec[pPVar2[4].offset];" (assignment_expression "pixel2.alpha = local_ec[pPVar2[4].offset]" (field_expression "pixel2.alpha" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel2.alpha_trait = BlendPixelTrait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }" { (expression_statement "pixel2.index = local_ec[pPVar2[5].offset];" (assignment_expression "pixel2.index = local_ec[pPVar2[5].offset]" (field_expression "pixel2.index" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "MVar4 = ComparePixels(method,&pixel1,&pixel2);" (assignment_expression "MVar4 = ComparePixels(method,&pixel1,&pixel2)" identifier = (call_expression "ComparePixels(method,&pixel1,&pixel2)" identifier (argument_list "(method,&pixel1,&pixel2)" ( identifier , (pointer_expression "&pixel1" & identifier) , (pointer_expression "&pixel2" & identifier) )))) ;) (if_statement "if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }" if (parenthesized_expression "(MVar4 != MagickFalse)" ( (binary_expression "MVar4 != MagickFalse" identifier != identifier) )) (compound_statement "{\n            if (local_e8 < (int)image1->columns) goto LAB_000ead3d;\n            break;\n          }" { (if_statement "if (local_e8 < (int)image1->columns) goto LAB_000ead3d;" if (parenthesized_expression "(local_e8 < (int)image1->columns)" ( (binary_expression "local_e8 < (int)image1->columns" identifier < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) (goto_statement "goto LAB_000ead3d;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "pQVar3 = pQVar3 + image1->number_channels;" (assignment_expression "pQVar3 = pQVar3 + image1->number_channels" identifier = (binary_expression "pQVar3 + image1->number_channels" identifier + (field_expression "image1->number_channels" identifier -> field_identifier))) ;) (expression_statement "local_ec = local_ec + image2->number_channels;" (assignment_expression "local_ec = local_ec + image2->number_channels" identifier = (binary_expression "local_ec + image2->number_channels" identifier + (field_expression "image2->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_e8 < (int)image1->columns)" ( (binary_expression "local_e8 < (int)image1->columns" identifier < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "rows = image1->rows;" (assignment_expression "rows = image1->rows" identifier = (field_expression "image1->rows" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(local_dc < (int)rows)" ( (binary_expression "local_dc < (int)rows" identifier < (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "local_d8 = rows - 1;" (assignment_expression "local_d8 = rows - 1" identifier = (binary_expression "rows - 1" identifier - number_literal)) ;) (if_statement "if (-1 < local_d8) {\n    while( true ) {\n      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" if (parenthesized_expression "(-1 < local_d8)" ( (binary_expression "-1 < local_d8" number_literal < identifier) )) (compound_statement "{\n    while( true ) {\n      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" { (while_statement "while( true ) {\n      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);\n      local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);\n      if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;\n      if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" { (expression_statement "pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception);" (assignment_expression "pQVar3 = GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image1,0,local_d8,image1->columns,1,exception)" identifier (argument_list "(image1,0,local_d8,image1->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image1->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception);" (assignment_expression "local_ec = GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image2,0,local_d8,image2->columns,1,exception)" identifier (argument_list "(image2,0,local_d8,image2->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image2->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if ((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)) break;" if (parenthesized_expression "((pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0))" ( (binary_expression "(pQVar3 == (Quantum *)0x0) || (local_ec == (Quantum *)0x0)" (parenthesized_expression "(pQVar3 == (Quantum *)0x0)" ( (binary_expression "pQVar3 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_ec == (Quantum *)0x0)" ( (binary_expression "local_ec == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (0 < (int)image1->columns) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }" if (parenthesized_expression "(0 < (int)image1->columns)" ( (binary_expression "0 < (int)image1->columns" number_literal < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        } while (local_e8 < (int)image1->columns);" do (compound_statement "{\n          ResetMagickMemory(&pixel1,0,0x50);\n          pixel1.storage_class = image1->storage_class;\n          pixel1.alpha = (MagickRealType)DAT_0029f710;\n          pixel1.fuzz = image1->fuzz;\n          pixel1.colorspace = image1->colorspace;\n          pixel1.depth = image1->depth;\n          pixel1.alpha_trait = image1->alpha_trait;\n          if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }\n          ResetMagickMemory(&pixel2,0,0x50);\n          pixel2.storage_class = image2->storage_class;\n          pixel2.alpha = (MagickRealType)DAT_0029f710;\n          pixel2.fuzz = image2->fuzz;\n          pixel2.colorspace = image2->colorspace;\n          pixel2.depth = image2->depth;\n          pixel2.alpha_trait = image2->alpha_trait;\n          if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }\n          MVar4 = ComparePixels(method,&pixel1,&pixel2);\n          if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          pQVar3 = pQVar3 + image1->number_channels;\n          local_ec = local_ec + image2->number_channels;\n        }" { (expression_statement "ResetMagickMemory(&pixel1,0,0x50);" (call_expression "ResetMagickMemory(&pixel1,0,0x50)" identifier (argument_list "(&pixel1,0,0x50)" ( (pointer_expression "&pixel1" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel1.storage_class = image1->storage_class;" (assignment_expression "pixel1.storage_class = image1->storage_class" (field_expression "pixel1.storage_class" identifier . field_identifier) = (field_expression "image1->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel1.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel1.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel1.fuzz = image1->fuzz;" (assignment_expression "pixel1.fuzz = image1->fuzz" (field_expression "pixel1.fuzz" identifier . field_identifier) = (field_expression "image1->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel1.colorspace = image1->colorspace;" (assignment_expression "pixel1.colorspace = image1->colorspace" (field_expression "pixel1.colorspace" identifier . field_identifier) = (field_expression "image1->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel1.depth = image1->depth;" (assignment_expression "pixel1.depth = image1->depth" (field_expression "pixel1.depth" identifier . field_identifier) = (field_expression "image1->depth" identifier -> field_identifier)) ;) (expression_statement "pixel1.alpha_trait = image1->alpha_trait;" (assignment_expression "pixel1.alpha_trait = image1->alpha_trait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = (field_expression "image1->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (pQVar3 != (Quantum *)0x0) {\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }" if (parenthesized_expression "(pQVar3 != (Quantum *)0x0)" ( (binary_expression "pQVar3 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar2 = image1->channel_map;\n            pixel1.red = pQVar3[pPVar2->offset];\n            pixel1.green = pQVar3[pPVar2[1].offset];\n            pixel1.blue = pQVar3[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }\n          }" { (expression_statement "pPVar2 = image1->channel_map;" (assignment_expression "pPVar2 = image1->channel_map" identifier = (field_expression "image1->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel1.red = pQVar3[pPVar2->offset];" (assignment_expression "pixel1.red = pQVar3[pPVar2->offset]" (field_expression "pixel1.red" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel1.green = pQVar3[pPVar2[1].offset];" (assignment_expression "pixel1.green = pQVar3[pPVar2[1].offset]" (field_expression "pixel1.green" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.blue = pQVar3[pPVar2[2].offset];" (assignment_expression "pixel1.blue = pQVar3[pPVar2[2].offset]" (field_expression "pixel1.blue" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.black = pQVar3[pPVar2[3].offset];\n            }" { (expression_statement "pixel1.black = pQVar3[pPVar2[3].offset];" (assignment_expression "pixel1.black = pQVar3[pPVar2[3].offset]" (field_expression "pixel1.black" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.alpha = pQVar3[pPVar2[4].offset];\n              pixel1.alpha_trait = BlendPixelTrait;\n            }" { (expression_statement "pixel1.alpha = pQVar3[pPVar2[4].offset];" (assignment_expression "pixel1.alpha = pQVar3[pPVar2[4].offset]" (field_expression "pixel1.alpha" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel1.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel1.alpha_trait = BlendPixelTrait" (field_expression "pixel1.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel1.index = pQVar3[pPVar2[5].offset];\n            }" { (expression_statement "pixel1.index = pQVar3[pPVar2[5].offset];" (assignment_expression "pixel1.index = pQVar3[pPVar2[5].offset]" (field_expression "pixel1.index" identifier . field_identifier) = (subscript_expression "pQVar3[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "ResetMagickMemory(&pixel2,0,0x50);" (call_expression "ResetMagickMemory(&pixel2,0,0x50)" identifier (argument_list "(&pixel2,0,0x50)" ( (pointer_expression "&pixel2" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pixel2.storage_class = image2->storage_class;" (assignment_expression "pixel2.storage_class = image2->storage_class" (field_expression "pixel2.storage_class" identifier . field_identifier) = (field_expression "image2->storage_class" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha = (MagickRealType)DAT_0029f710;" (assignment_expression "pixel2.alpha = (MagickRealType)DAT_0029f710" (field_expression "pixel2.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)DAT_0029f710" ( (type_descriptor "MagickRealType" type_identifier) ) identifier)) ;) (expression_statement "pixel2.fuzz = image2->fuzz;" (assignment_expression "pixel2.fuzz = image2->fuzz" (field_expression "pixel2.fuzz" identifier . field_identifier) = (field_expression "image2->fuzz" identifier -> field_identifier)) ;) (expression_statement "pixel2.colorspace = image2->colorspace;" (assignment_expression "pixel2.colorspace = image2->colorspace" (field_expression "pixel2.colorspace" identifier . field_identifier) = (field_expression "image2->colorspace" identifier -> field_identifier)) ;) (expression_statement "pixel2.depth = image2->depth;" (assignment_expression "pixel2.depth = image2->depth" (field_expression "pixel2.depth" identifier . field_identifier) = (field_expression "image2->depth" identifier -> field_identifier)) ;) (expression_statement "pixel2.alpha_trait = image2->alpha_trait;" (assignment_expression "pixel2.alpha_trait = image2->alpha_trait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = (field_expression "image2->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (local_ec != (Quantum *)0x0) {\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }" if (parenthesized_expression "(local_ec != (Quantum *)0x0)" ( (binary_expression "local_ec != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar2 = image2->channel_map;\n            pixel2.red = local_ec[pPVar2->offset];\n            pixel2.green = local_ec[pPVar2[1].offset];\n            pixel2.blue = local_ec[pPVar2[2].offset];\n            if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }\n            if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }\n            if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }\n          }" { (expression_statement "pPVar2 = image2->channel_map;" (assignment_expression "pPVar2 = image2->channel_map" identifier = (field_expression "image2->channel_map" identifier -> field_identifier)) ;) (expression_statement "pixel2.red = local_ec[pPVar2->offset];" (assignment_expression "pixel2.red = local_ec[pPVar2->offset]" (field_expression "pixel2.red" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2->offset]" identifier [ (field_expression "pPVar2->offset" identifier -> field_identifier) ])) ;) (expression_statement "pixel2.green = local_ec[pPVar2[1].offset];" (assignment_expression "pixel2.green = local_ec[pPVar2[1].offset]" (field_expression "pixel2.green" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[1].offset]" identifier [ (field_expression "pPVar2[1].offset" (subscript_expression "pPVar2[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.blue = local_ec[pPVar2[2].offset];" (assignment_expression "pixel2.blue = local_ec[pPVar2[2].offset]" (field_expression "pixel2.blue" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[2].offset]" identifier [ (field_expression "pPVar2[2].offset" (subscript_expression "pPVar2[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (pPVar2[3].traits != UndefinedPixelTrait) {\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }" if (parenthesized_expression "(pPVar2[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[3].traits != UndefinedPixelTrait" (field_expression "pPVar2[3].traits" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.black = local_ec[pPVar2[3].offset];\n            }" { (expression_statement "pixel2.black = local_ec[pPVar2[3].offset];" (assignment_expression "pixel2.black = local_ec[pPVar2[3].offset]" (field_expression "pixel2.black" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[3].offset]" identifier [ (field_expression "pPVar2[3].offset" (subscript_expression "pPVar2[3]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (if_statement "if (pPVar2[4].traits != UndefinedPixelTrait) {\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }" if (parenthesized_expression "(pPVar2[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[4].traits != UndefinedPixelTrait" (field_expression "pPVar2[4].traits" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.alpha = local_ec[pPVar2[4].offset];\n              pixel2.alpha_trait = BlendPixelTrait;\n            }" { (expression_statement "pixel2.alpha = local_ec[pPVar2[4].offset];" (assignment_expression "pixel2.alpha = local_ec[pPVar2[4].offset]" (field_expression "pixel2.alpha" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[4].offset]" identifier [ (field_expression "pPVar2[4].offset" (subscript_expression "pPVar2[4]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "pixel2.alpha_trait = BlendPixelTrait;" (assignment_expression "pixel2.alpha_trait = BlendPixelTrait" (field_expression "pixel2.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar2[5].traits != UndefinedPixelTrait) {\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }" if (parenthesized_expression "(pPVar2[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar2[5].traits != UndefinedPixelTrait" (field_expression "pPVar2[5].traits" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pixel2.index = local_ec[pPVar2[5].offset];\n            }" { (expression_statement "pixel2.index = local_ec[pPVar2[5].offset];" (assignment_expression "pixel2.index = local_ec[pPVar2[5].offset]" (field_expression "pixel2.index" identifier . field_identifier) = (subscript_expression "local_ec[pPVar2[5].offset]" identifier [ (field_expression "pPVar2[5].offset" (subscript_expression "pPVar2[5]" identifier [ number_literal ]) . field_identifier) ])) ;) })) })) (expression_statement "MVar4 = ComparePixels(method,&pixel1,&pixel2);" (assignment_expression "MVar4 = ComparePixels(method,&pixel1,&pixel2)" identifier = (call_expression "ComparePixels(method,&pixel1,&pixel2)" identifier (argument_list "(method,&pixel1,&pixel2)" ( identifier , (pointer_expression "&pixel1" & identifier) , (pointer_expression "&pixel2" & identifier) )))) ;) (if_statement "if (MVar4 != MagickFalse) {\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }" if (parenthesized_expression "(MVar4 != MagickFalse)" ( (binary_expression "MVar4 != MagickFalse" identifier != identifier) )) (compound_statement "{\n            if (local_e8 < (int)image1->columns) goto LAB_000ead14;\n            break;\n          }" { (if_statement "if (local_e8 < (int)image1->columns) goto LAB_000ead14;" if (parenthesized_expression "(local_e8 < (int)image1->columns)" ( (binary_expression "local_e8 < (int)image1->columns" identifier < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) (goto_statement "goto LAB_000ead14;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "pQVar3 = pQVar3 + image1->number_channels;" (assignment_expression "pQVar3 = pQVar3 + image1->number_channels" identifier = (binary_expression "pQVar3 + image1->number_channels" identifier + (field_expression "image1->number_channels" identifier -> field_identifier))) ;) (expression_statement "local_ec = local_ec + image2->number_channels;" (assignment_expression "local_ec = local_ec + image2->number_channels" identifier = (binary_expression "local_ec + image2->number_channels" identifier + (field_expression "image2->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_e8 < (int)image1->columns)" ( (binary_expression "local_e8 < (int)image1->columns" identifier < (cast_expression "(int)image1->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image1->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "local_d8 = local_d8 + -1;" (assignment_expression "local_d8 = local_d8 + -1" identifier = (binary_expression "local_d8 + -1" identifier + number_literal)) ;) (if_statement "if (local_d8 == -1) break;" if (parenthesized_expression "(local_d8 == -1)" ( (binary_expression "local_d8 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (labeled_statement "LAB_000ead14:\n  __return_storage_ptr__->width = local_d0;" statement_identifier : (expression_statement "__return_storage_ptr__->width = local_d0;" (assignment_expression "__return_storage_ptr__->width = local_d0" (field_expression "__return_storage_ptr__->width" identifier -> field_identifier) = identifier) ;)) (expression_statement "__return_storage_ptr__->y = local_dc;" (assignment_expression "__return_storage_ptr__->y = local_dc" (field_expression "__return_storage_ptr__->y" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->height = (local_d8 - local_dc) + 1;" (assignment_expression "__return_storage_ptr__->height = (local_d8 - local_dc) + 1" (field_expression "__return_storage_ptr__->height" identifier -> field_identifier) = (binary_expression "(local_d8 - local_dc) + 1" (parenthesized_expression "(local_d8 - local_dc)" ( (binary_expression "local_d8 - local_dc" identifier - identifier) )) + number_literal)) ;) (expression_statement "__return_storage_ptr__->x = local_e0;" (assignment_expression "__return_storage_ptr__->x = local_e0" (field_expression "__return_storage_ptr__->x" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_000ea593:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return __return_storage_ptr__;" return identifier ;) }))
(translation_unit "int * __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return param_1;\n}\n\n" (function_definition "int * __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return param_1;\n}" primitive_type (pointer_declarator "* __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" identifier (parameter_list "(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return param_1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined4 local_bc;" type_identifier identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined8 local_b4;" type_identifier identifier ;) (declaration "undefined4 local_ac;" type_identifier identifier ;) (declaration "undefined8 local_a0;" type_identifier identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "undefined8 local_64;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "double local_30;" primitive_type identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xea2bd;" (assignment_expression "uStack_14 = 0xea2bd" 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) ))))) ;) (expression_statement "GetPixelInfo(param_2,&local_c0);" (call_expression "GetPixelInfo(param_2,&local_c0)" identifier (argument_list "(param_2,&local_c0)" ( identifier , (pointer_expression "&local_c0" & identifier) ))) ;) (expression_statement "GetPixelInfo(param_3,&local_70);" (call_expression "GetPixelInfo(param_3,&local_70)" identifier (argument_list "(param_3,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) ))) ;) (if_statement "if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }" if (parenthesized_expression "(0 < (int)param_2[6])" ( (binary_expression "0 < (int)param_2[6]" number_literal < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);" do (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5)" identifier = (call_expression "GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5)" identifier (argument_list "(param_2,local_e0,0,1,param_2[7],param_5)" ( identifier , identifier , number_literal , number_literal , (subscript_expression "param_2[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5)" identifier = (call_expression "GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5)" identifier (argument_list "(param_3,local_e0,0,1,param_3[7],param_5)" ( identifier , identifier , number_literal , number_literal , (subscript_expression "param_3[7]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" { (labeled_statement "LAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" statement_identifier : (if_statement "if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" if (parenthesized_expression "(local_e0 < (int)param_2[6])" ( (binary_expression "local_e0 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" { (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "local_dc = param_2[6] + -1;" (assignment_expression "local_dc = param_2[6] + -1" identifier = (binary_expression "param_2[6] + -1" (subscript_expression "param_2[6]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_000ea5d8;" goto statement_identifier ;) }))) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }" if (parenthesized_expression "(0 < (int)param_2[7])" ( (binary_expression "0 < (int)param_2[7]" number_literal < (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ]))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);" do (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }" { (if_statement "if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;" if (parenthesized_expression "(local_e8 < (int)param_2[7])" ( (binary_expression "local_e8 < (int)param_2[7]" identifier < (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000ea5c0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < (int)param_2[7])" ( (binary_expression "local_e8 < (int)param_2[7]" identifier < (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_e0 = local_e0 + 1;" (assignment_expression "local_e0 = local_e0 + 1" identifier = (binary_expression "local_e0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_e0 < (int)param_2[6])" ( (binary_expression "local_e0 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = -1;" (assignment_expression "param_1[2] = -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = -1;" (assignment_expression "param_1[3] = -1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_000ea593;" goto statement_identifier ;) (labeled_statement "LAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" statement_identifier : (do_statement "do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" do (compound_statement "{\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5)" identifier = (call_expression "GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5)" identifier (argument_list "(param_2,local_dc,0,1,local_d8,param_5)" ( identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5)" identifier = (call_expression "GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5)" identifier (argument_list "(param_3,local_dc,0,1,param_3[7],param_5)" ( identifier , identifier , number_literal , number_literal , (subscript_expression "param_3[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) break;" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }" if (parenthesized_expression "(0 < local_d8)" ( (binary_expression "0 < local_d8" number_literal < identifier) )) (compound_statement "{\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);" do (compound_statement "{\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" { (if_statement "if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" if (parenthesized_expression "(local_e8 < local_d8)" ( (binary_expression "local_e8 < local_d8" identifier < identifier) )) (compound_statement "{\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" { (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" identifier = (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" ( (binary_expression "local_dc - local_e0" identifier - identifier) )) + number_literal)) ;) (goto_statement "goto LAB_000ea847;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < local_d8)" ( (binary_expression "local_e8 < local_d8" identifier < identifier) )) ;) })) (expression_statement "local_dc = local_dc + -1;" (assignment_expression "local_dc = local_dc + -1" identifier = (binary_expression "local_dc + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_dc != -1)" ( (binary_expression "local_dc != -1" identifier != number_literal) )) ;)) (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" identifier = (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" ( (binary_expression "local_dc - local_e0" identifier - identifier) )) + number_literal)) ;) (if_statement "if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" if (parenthesized_expression "(local_d8 < 1)" ( (binary_expression "local_d8 < 1" identifier < number_literal) )) (compound_statement "{\n    local_dc = 0;\n  }" { (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" else (compound_statement "{\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" { (labeled_statement "LAB_000ea847:\n    local_dc = 0;" statement_identifier : (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;)) (do_statement "do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);" do (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5)" identifier (argument_list "(param_2,0,local_dc,param_2[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5)" identifier (argument_list "(param_3,0,local_dc,param_3[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_3[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }" { (labeled_statement "LAB_000ead3d:\n        local_d8 = param_2[7];" statement_identifier : (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;)) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" if (parenthesized_expression "(0 < (int)param_2[6])" ( (binary_expression "0 < (int)param_2[6]" number_literal < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);" do (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }" { (if_statement "if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;" if (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000ead3d;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(local_dc < local_d8)" ( (binary_expression "local_dc < local_d8" 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)) ;) (if_statement "if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" if (parenthesized_expression "(-1 < local_d8)" ( (binary_expression "-1 < local_d8" number_literal < identifier) )) (compound_statement "{\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" { (while_statement "while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" { (expression_statement "iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5)" identifier (argument_list "(param_2,0,local_d8,param_2[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (expression_statement "local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5)" identifier = (call_expression "GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5)" identifier (argument_list "(param_3,0,local_d8,param_3[6],1,param_5)" ( identifier , number_literal , identifier , (subscript_expression "param_3[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) break;" if (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" ( (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" if (parenthesized_expression "(0 < (int)param_2[6])" ( (binary_expression "0 < (int)param_2[6]" number_literal < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);" do (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" { (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" identifier (argument_list "(&local_c0,0,0x50)" ( (pointer_expression "&local_c0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x88)" * (cast_expression "(undefined8 *)(param_2 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" { (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" identifier (argument_list "(&local_70,0,0x50)" ( (pointer_expression "&local_70" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x88)" * (cast_expression "(undefined8 *)(param_3 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" identifier = (subscript_expression "param_3[8]" identifier [ number_literal ])) ;) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" identifier = (subscript_expression "param_3[0xa5]" identifier [ number_literal ])) ;) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" { (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" identifier = (subscript_expression "param_3[0xaa]" identifier [ number_literal ])) ;) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" identifier + (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" { (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" { (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" * (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" * (cast_expression "(int *)(iVar2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" { (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" identifier = (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" * (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" ( (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) * number_literal)) ))))) ;) })) })) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" identifier = (call_expression "FUN_000ea1f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }" { (if_statement "if (local_e8 < (int)param_2[6]) goto LAB_000ead14;" if (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000ead14;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" identifier = (binary_expression "local_e8 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" identifier = (binary_expression "iVar1 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" identifier = (binary_expression "local_ec + param_3[0xa6] * 8" identifier + (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(local_e8 < (int)param_2[6])" ( (binary_expression "local_e8 < (int)param_2[6]" identifier < (cast_expression "(int)param_2[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_d8 = local_d8 + -1;" (assignment_expression "local_d8 = local_d8 + -1" identifier = (binary_expression "local_d8 + -1" identifier + number_literal)) ;) (if_statement "if (local_d8 == -1) break;" if (parenthesized_expression "(local_d8 == -1)" ( (binary_expression "local_d8 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (labeled_statement "LAB_000ead14:\n  *param_1 = local_d0;" statement_identifier : (expression_statement "*param_1 = local_d0;" (assignment_expression "*param_1 = local_d0" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[3] = local_dc;" (assignment_expression "param_1[3] = local_dc" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[1] = (local_d8 - local_dc) + 1;" (assignment_expression "param_1[1] = (local_d8 - local_dc) + 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(local_d8 - local_dc) + 1" (parenthesized_expression "(local_d8 - local_dc)" ( (binary_expression "local_d8 - local_dc" identifier - identifier) )) + number_literal)) ;) (expression_statement "param_1[2] = local_e0;" (assignment_expression "param_1[2] = local_e0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" { (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (goto_statement goto statement_identifier ;) }))) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) })) })) (labeled_statement statement_identifier : (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 ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int * __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return param_1;\n}" (primitive_type "int") (pointer_declarator "* __regparm3\nFUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000ea2b0(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" (identifier "FUN_000ea2b0") (parameter_list "(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,\n            undefined4 param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")")))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  int local_ec;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  int local_d0;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined8 local_b4;\n  undefined4 local_ac;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  double local_80;\n  undefined8 local_78;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined8 local_64;\n  undefined4 local_5c;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  double local_30;\n  undefined8 local_28;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xea2bd;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  GetPixelInfo(param_2,&local_c0);\n  GetPixelInfo(param_3,&local_70);\n  if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }\n  *param_1 = 1;\n  param_1[1] = 1;\n  param_1[2] = -1;\n  param_1[3] = -1;\n  goto LAB_000ea593;\nLAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);\n  local_d0 = (local_dc - local_e0) + 1;\n  if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }\n  local_d8 = local_d8 + -1;\n  if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }\nLAB_000ead14:\n  *param_1 = local_d0;\n  param_1[3] = local_dc;\n  param_1[1] = (local_d8 - local_dc) + 1;\n  param_1[2] = local_e0;\nLAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return param_1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int local_ec;" (primitive_type "int") (identifier "local_ec") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "int local_dc;" (primitive_type "int") (identifier "local_dc") (; ";")) (declaration "int local_d8;" (primitive_type "int") (identifier "local_d8") (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "undefined4 local_bc;" (type_identifier "undefined4") (identifier "local_bc") (; ";")) (declaration "undefined4 local_b8;" (type_identifier "undefined4") (identifier "local_b8") (; ";")) (declaration "undefined8 local_b4;" (type_identifier "undefined8") (identifier "local_b4") (; ";")) (declaration "undefined4 local_ac;" (type_identifier "undefined4") (identifier "local_ac") (; ";")) (declaration "undefined8 local_a0;" (type_identifier "undefined8") (identifier "local_a0") (; ";")) (declaration "undefined8 local_98;" (type_identifier "undefined8") (identifier "local_98") (; ";")) (declaration "undefined8 local_90;" (type_identifier "undefined8") (identifier "local_90") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "double local_80;" (primitive_type "double") (identifier "local_80") (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 local_6c;" (type_identifier "undefined4") (identifier "local_6c") (; ";")) (declaration "undefined4 local_68;" (type_identifier "undefined4") (identifier "local_68") (; ";")) (declaration "undefined8 local_64;" (type_identifier "undefined8") (identifier "local_64") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "undefined8 local_40;" (type_identifier "undefined8") (identifier "local_40") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (declaration "double local_30;" (primitive_type "double") (identifier "local_30") (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0xea2bd;" (assignment_expression "uStack_14 = 0xea2bd" (identifier "uStack_14") (= "=") (number_literal "0xea2bd")) (; ";")) (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")) () ")"))))) (; ";")) (expression_statement "GetPixelInfo(param_2,&local_c0);" (call_expression "GetPixelInfo(param_2,&local_c0)" (identifier "GetPixelInfo") (argument_list "(param_2,&local_c0)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) () ")"))) (; ";")) (expression_statement "GetPixelInfo(param_3,&local_70);" (call_expression "GetPixelInfo(param_3,&local_70)" (identifier "GetPixelInfo") (argument_list "(param_3,&local_70)" (( "(") (identifier "param_3") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")"))) (; ";")) (if_statement "if (0 < (int)param_2[6]) {\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }" (if "if") (parenthesized_expression "(0 < (int)param_2[6])" (( "(") (binary_expression "0 < (int)param_2[6]" (number_literal "0") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n    local_e0 = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);\n  }" ({ "{") (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    } while (local_e0 < (int)param_2[6]);" (do "do") (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);\n      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }\n      if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }\n      local_e0 = local_e0 + 1;\n    }" ({ "{") (expression_statement "iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5)" (identifier "iVar1") (= "=") (call_expression "GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5)" (identifier "GetVirtualPixels") (argument_list "(param_2,local_e0,0,1,param_2[7],param_5)" (( "(") (identifier "param_2") (, ",") (identifier "local_e0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5)" (identifier "local_ec") (= "=") (call_expression "GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5)" (identifier "GetVirtualPixels") (argument_list "(param_3,local_e0,0,1,param_3[7],param_5)" (( "(") (identifier "param_3") (, ",") (identifier "local_e0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "param_5") () ")")))) (; ";")) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" (( "(") (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }\n        break;\n      }" ({ "{") (labeled_statement "LAB_000ea5c0:\n        if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" (statement_identifier "LAB_000ea5c0") (: ":") (if_statement "if (local_e0 < (int)param_2[6]) {\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" (if "if") (parenthesized_expression "(local_e0 < (int)param_2[6])" (( "(") (binary_expression "local_e0 < (int)param_2[6]" (identifier "local_e0") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n          local_d8 = param_2[7];\n          local_dc = param_2[6] + -1;\n          goto LAB_000ea5d8;\n        }" ({ "{") (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" (identifier "local_d8") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_dc = param_2[6] + -1;" (assignment_expression "local_dc = param_2[6] + -1" (identifier "local_dc") (= "=") (binary_expression "param_2[6] + -1" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (goto_statement "goto LAB_000ea5d8;" (goto "goto") (statement_identifier "LAB_000ea5d8") (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (0 < (int)param_2[7]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }" (if "if") (parenthesized_expression "(0 < (int)param_2[7])" (( "(") (binary_expression "0 < (int)param_2[7]" (number_literal "0") (< "<") (cast_expression "(int)param_2[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);\n      }" ({ "{") (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[7]);" (do "do") (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" ({ "{") (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_c0,0,0x50)" (( "(") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" (identifier "local_c0") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" (identifier "local_80") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" (identifier "local_b4") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x88)" (( "(") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" (identifier "local_bc") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" (identifier "local_ac") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" (identifier "local_b8") (= "=") (subscript_expression "param_2[0xa5]" (identifier "param_2") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (identifier "local_a0") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_98") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_90") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" ({ "{") (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_88") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" ({ "{") (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_80") (= "=") (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" (identifier "local_b8") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" ({ "{") (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_78") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_70,0,0x50)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" (identifier "local_70") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" (identifier "local_30") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" (identifier "local_64") (= "=") (pointer_expression "*(undefined8 *)(param_3 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x88)" (( "(") (binary_expression "param_3 + 0x88" (identifier "param_3") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" (identifier "local_6c") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" (identifier "local_5c") (= "=") (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" (identifier "local_68") (= "=") (subscript_expression "param_3[0xa5]" (identifier "param_3") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" (if "if") (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_3[0xaa]" (identifier "param_3") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (identifier "local_50") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_48") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_40") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" ({ "{") (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_38") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" ({ "{") (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_30") (= "=") (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" (identifier "local_68") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" ({ "{") (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_28") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" (identifier "iVar2") (= "=") (call_expression "FUN_000ea1f0()" (identifier "FUN_000ea1f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;\n            break;\n          }" ({ "{") (if_statement "if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;" (if "if") (parenthesized_expression "(local_e8 < (int)param_2[7])" (( "(") (binary_expression "local_e8 < (int)param_2[7]" (identifier "local_e8") (< "<") (cast_expression "(int)param_2[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")))) () ")")) (goto_statement "goto LAB_000ea5c0;" (goto "goto") (statement_identifier "LAB_000ea5c0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" (identifier "local_e8") (= "=") (binary_expression "local_e8 + 1" (identifier "local_e8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (= "=") (binary_expression "iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" (identifier "local_ec") (= "=") (binary_expression "local_ec + param_3[0xa6] * 8" (identifier "local_ec") (+ "+") (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_e8 < (int)param_2[7])" (( "(") (binary_expression "local_e8 < (int)param_2[7]" (identifier "local_e8") (< "<") (cast_expression "(int)param_2[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "local_e0 = local_e0 + 1;" (assignment_expression "local_e0 = local_e0 + 1" (identifier "local_e0") (= "=") (binary_expression "local_e0 + 1" (identifier "local_e0") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_e0 < (int)param_2[6])" (( "(") (binary_expression "local_e0 < (int)param_2[6]" (identifier "local_e0") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[2] = -1;" (assignment_expression "param_1[2] = -1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_1[3] = -1;" (assignment_expression "param_1[3] = -1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_000ea593;" (goto "goto") (statement_identifier "LAB_000ea593") (; ";")) (labeled_statement "LAB_000ea5d8:\n  do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" (statement_identifier "LAB_000ea5d8") (: ":") (do_statement "do {\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  } while (local_dc != -1);" (do "do") (compound_statement "{\n    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);\n    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);\n    local_d8 = param_2[7];\n    if ((iVar1 == 0) || (local_ec == 0)) break;\n    if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }\n    local_dc = local_dc + -1;\n  }" ({ "{") (expression_statement "iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5)" (identifier "iVar1") (= "=") (call_expression "GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5)" (identifier "GetVirtualPixels") (argument_list "(param_2,local_dc,0,1,local_d8,param_5)" (( "(") (identifier "param_2") (, ",") (identifier "local_dc") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "local_d8") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5)" (identifier "local_ec") (= "=") (call_expression "GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5)" (identifier "GetVirtualPixels") (argument_list "(param_3,local_dc,0,1,param_3[7],param_5)" (( "(") (identifier "param_3") (, ",") (identifier "local_dc") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" (identifier "local_d8") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) break;" (if "if") (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" (( "(") (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (0 < local_d8) {\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }" (if "if") (parenthesized_expression "(0 < local_d8)" (( "(") (binary_expression "0 < local_d8" (number_literal "0") (< "<") (identifier "local_d8")) () ")")) (compound_statement "{\n      local_e8 = 0;\n      do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);\n    }" ({ "{") (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      } while (local_e8 < local_d8);" (do "do") (compound_statement "{\n        ResetMagickMemory(&local_c0,0,0x50);\n        local_c0 = *param_2;\n        local_80 = (double)DAT_0029f710;\n        local_b4 = *(undefined8 *)(param_2 + 0x88);\n        local_bc = param_2[1];\n        local_ac = param_2[8];\n        local_b8 = param_2[0xa5];\n        if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        ResetMagickMemory(&local_70,0,0x50);\n        local_70 = *param_3;\n        local_30 = (double)DAT_0029f710;\n        local_64 = *(undefined8 *)(param_3 + 0x88);\n        local_6c = param_3[1];\n        local_5c = param_3[8];\n        local_68 = param_3[0xa5];\n        if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }\n        iVar2 = FUN_000ea1f0();\n        local_d8 = param_2[7];\n        if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }\n        local_e8 = local_e8 + 1;\n        iVar1 = iVar1 + param_2[0xa6] * 8;\n        local_ec = local_ec + param_3[0xa6] * 8;\n      }" ({ "{") (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_c0,0,0x50)" (( "(") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" (identifier "local_c0") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" (identifier "local_80") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" (identifier "local_b4") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x88)" (( "(") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" (identifier "local_bc") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" (identifier "local_ac") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" (identifier "local_b8") (= "=") (subscript_expression "param_2[0xa5]" (identifier "param_2") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (iVar1 != 0) {\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = param_2[0xaa];\n          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" ({ "{") (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (identifier "local_a0") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_98") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_90") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n          }" ({ "{") (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_88") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n            local_b8 = 4;\n          }" ({ "{") (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_80") (= "=") (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" (identifier "local_b8") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n          }" ({ "{") (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_78") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_70,0,0x50)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" (identifier "local_70") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" (identifier "local_30") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" (identifier "local_64") (= "=") (pointer_expression "*(undefined8 *)(param_3 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x88)" (( "(") (binary_expression "param_3 + 0x88" (identifier "param_3") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" (identifier "local_6c") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" (identifier "local_5c") (= "=") (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" (identifier "local_68") (= "=") (subscript_expression "param_3[0xa5]" (identifier "param_3") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (local_ec != 0) {\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" (if "if") (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = param_3[0xaa];\n          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n          if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }\n          if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }\n          if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }\n        }" ({ "{") (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_3[0xaa]" (identifier "param_3") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (identifier "local_50") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_48") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_40") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n          }" ({ "{") (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_38") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n            local_68 = 4;\n          }" ({ "{") (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_30") (= "=") (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" (identifier "local_68") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n          }" ({ "{") (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_28") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" (identifier "iVar2") (= "=") (call_expression "FUN_000ea1f0()" (identifier "FUN_000ea1f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" (identifier "local_d8") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (iVar2 != 0) {\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }\n          break;\n        }" ({ "{") (if_statement "if (local_e8 < local_d8) {\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" (if "if") (parenthesized_expression "(local_e8 < local_d8)" (( "(") (binary_expression "local_e8 < local_d8" (identifier "local_e8") (< "<") (identifier "local_d8")) () ")")) (compound_statement "{\n            local_d0 = (local_dc - local_e0) + 1;\n            goto LAB_000ea847;\n          }" ({ "{") (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" (identifier "local_d0") (= "=") (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" (( "(") (binary_expression "local_dc - local_e0" (identifier "local_dc") (- "-") (identifier "local_e0")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000ea847;" (goto "goto") (statement_identifier "LAB_000ea847") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" (identifier "local_e8") (= "=") (binary_expression "local_e8 + 1" (identifier "local_e8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (= "=") (binary_expression "iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" (identifier "local_ec") (= "=") (binary_expression "local_ec + param_3[0xa6] * 8" (identifier "local_ec") (+ "+") (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_e8 < local_d8)" (( "(") (binary_expression "local_e8 < local_d8" (identifier "local_e8") (< "<") (identifier "local_d8")) () ")")) (; ";")) (} "}"))) (expression_statement "local_dc = local_dc + -1;" (assignment_expression "local_dc = local_dc + -1" (identifier "local_dc") (= "=") (binary_expression "local_dc + -1" (identifier "local_dc") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_dc != -1)" (( "(") (binary_expression "local_dc != -1" (identifier "local_dc") (!= "!=") (number_literal "-1")) () ")")) (; ";"))) (expression_statement "local_d0 = (local_dc - local_e0) + 1;" (assignment_expression "local_d0 = (local_dc - local_e0) + 1" (identifier "local_d0") (= "=") (binary_expression "(local_dc - local_e0) + 1" (parenthesized_expression "(local_dc - local_e0)" (( "(") (binary_expression "local_dc - local_e0" (identifier "local_dc") (- "-") (identifier "local_e0")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_d8 < 1) {\n    local_dc = 0;\n  }\n  else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" (if "if") (parenthesized_expression "(local_d8 < 1)" (( "(") (binary_expression "local_d8 < 1" (identifier "local_d8") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    local_dc = 0;\n  }" ({ "{") (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" (else "else") (compound_statement "{\nLAB_000ea847:\n    local_dc = 0;\n    do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);\n  }" ({ "{") (labeled_statement "LAB_000ea847:\n    local_dc = 0;" (statement_identifier "LAB_000ea847") (: ":") (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    } while (local_dc < local_d8);" (do "do") (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_dc = local_dc + 1;\n      local_d8 = param_2[7];\n    }" ({ "{") (expression_statement "iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5)" (identifier "iVar1") (= "=") (call_expression "GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5)" (identifier "GetVirtualPixels") (argument_list "(param_2,0,local_dc,param_2[6],1,param_5)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "local_dc") (, ",") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5)" (identifier "local_ec") (= "=") (call_expression "GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5)" (identifier "GetVirtualPixels") (argument_list "(param_3,0,local_dc,param_3[6],1,param_5)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (identifier "local_dc") (, ",") (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_5") () ")")))) (; ";")) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) {\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }" (if "if") (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" (( "(") (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_000ead3d:\n        local_d8 = param_2[7];\n        break;\n      }" ({ "{") (labeled_statement "LAB_000ead3d:\n        local_d8 = param_2[7];" (statement_identifier "LAB_000ead3d") (: ":") (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" (identifier "local_d8") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" (if "if") (parenthesized_expression "(0 < (int)param_2[6])" (( "(") (binary_expression "0 < (int)param_2[6]" (number_literal "0") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" ({ "{") (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);" (do "do") (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" ({ "{") (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_c0,0,0x50)" (( "(") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" (identifier "local_c0") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" (identifier "local_80") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" (identifier "local_b4") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x88)" (( "(") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" (identifier "local_bc") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" (identifier "local_ac") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" (identifier "local_b8") (= "=") (subscript_expression "param_2[0xa5]" (identifier "param_2") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (identifier "local_a0") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_98") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_90") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" ({ "{") (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_88") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" ({ "{") (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_80") (= "=") (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" (identifier "local_b8") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" ({ "{") (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_78") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_70,0,0x50)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" (identifier "local_70") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" (identifier "local_30") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" (identifier "local_64") (= "=") (pointer_expression "*(undefined8 *)(param_3 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x88)" (( "(") (binary_expression "param_3 + 0x88" (identifier "param_3") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" (identifier "local_6c") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" (identifier "local_5c") (= "=") (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" (identifier "local_68") (= "=") (subscript_expression "param_3[0xa5]" (identifier "param_3") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" (if "if") (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_3[0xaa]" (identifier "param_3") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (identifier "local_50") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_48") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_40") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" ({ "{") (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_38") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" ({ "{") (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_30") (= "=") (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" (identifier "local_68") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" ({ "{") (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_28") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" (identifier "iVar2") (= "=") (call_expression "FUN_000ea1f0()" (identifier "FUN_000ea1f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;\n            break;\n          }" ({ "{") (if_statement "if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;" (if "if") (parenthesized_expression "(local_e8 < (int)param_2[6])" (( "(") (binary_expression "local_e8 < (int)param_2[6]" (identifier "local_e8") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (goto_statement "goto LAB_000ead3d;" (goto "goto") (statement_identifier "LAB_000ead3d") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" (identifier "local_e8") (= "=") (binary_expression "local_e8 + 1" (identifier "local_e8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (= "=") (binary_expression "iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" (identifier "local_ec") (= "=") (binary_expression "local_ec + param_3[0xa6] * 8" (identifier "local_ec") (+ "+") (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_e8 < (int)param_2[6])" (( "(") (binary_expression "local_e8 < (int)param_2[6]" (identifier "local_e8") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" (identifier "local_dc") (= "=") (binary_expression "local_dc + 1" (identifier "local_dc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_d8 = param_2[7];" (assignment_expression "local_d8 = param_2[7]" (identifier "local_d8") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_dc < local_d8)" (( "(") (binary_expression "local_dc < local_d8" (identifier "local_dc") (< "<") (identifier "local_d8")) () ")")) (; ";")) (} "}")))) (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"))) (; ";")) (if_statement "if (-1 < local_d8) {\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" (if "if") (parenthesized_expression "(-1 < local_d8)" (( "(") (binary_expression "-1 < local_d8" (number_literal "-1") (< "<") (identifier "local_d8")) () ")")) (compound_statement "{\n    while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }\n  }" ({ "{") (while_statement "while( true ) {\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);\n      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);\n      if ((iVar1 == 0) || (local_ec == 0)) break;\n      if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }\n      local_d8 = local_d8 + -1;\n      if (local_d8 == -1) break;\n    }" ({ "{") (expression_statement "iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);" (assignment_expression "iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5)" (identifier "iVar1") (= "=") (call_expression "GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5)" (identifier "GetVirtualPixels") (argument_list "(param_2,0,local_d8,param_2[6],1,param_5)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "local_d8") (, ",") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);" (assignment_expression "local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5)" (identifier "local_ec") (= "=") (call_expression "GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5)" (identifier "GetVirtualPixels") (argument_list "(param_3,0,local_d8,param_3[6],1,param_5)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (identifier "local_d8") (, ",") (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_5") () ")")))) (; ";")) (if_statement "if ((iVar1 == 0) || (local_ec == 0)) break;" (if "if") (parenthesized_expression "((iVar1 == 0) || (local_ec == 0))" (( "(") (binary_expression "(iVar1 == 0) || (local_ec == 0)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (0 < (int)param_2[6]) {\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" (if "if") (parenthesized_expression "(0 < (int)param_2[6])" (( "(") (binary_expression "0 < (int)param_2[6]" (number_literal "0") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n        local_e8 = 0;\n        do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);\n      }" ({ "{") (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        } while (local_e8 < (int)param_2[6]);" (do "do") (compound_statement "{\n          ResetMagickMemory(&local_c0,0,0x50);\n          local_c0 = *param_2;\n          local_80 = (double)DAT_0029f710;\n          local_b4 = *(undefined8 *)(param_2 + 0x88);\n          local_bc = param_2[1];\n          local_ac = param_2[8];\n          local_b8 = param_2[0xa5];\n          if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          ResetMagickMemory(&local_70,0,0x50);\n          local_70 = *param_3;\n          local_30 = (double)DAT_0029f710;\n          local_64 = *(undefined8 *)(param_3 + 0x88);\n          local_6c = param_3[1];\n          local_5c = param_3[8];\n          local_68 = param_3[0xa5];\n          if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }\n          iVar2 = FUN_000ea1f0();\n          if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }\n          local_e8 = local_e8 + 1;\n          iVar1 = iVar1 + param_2[0xa6] * 8;\n          local_ec = local_ec + param_3[0xa6] * 8;\n        }" ({ "{") (expression_statement "ResetMagickMemory(&local_c0,0,0x50);" (call_expression "ResetMagickMemory(&local_c0,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_c0,0,0x50)" (( "(") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_c0 = *param_2;" (assignment_expression "local_c0 = *param_2" (identifier "local_c0") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_80 = (double)DAT_0029f710;" (assignment_expression "local_80 = (double)DAT_0029f710" (identifier "local_80") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_b4 = *(undefined8 *)(param_2 + 0x88);" (assignment_expression "local_b4 = *(undefined8 *)(param_2 + 0x88)" (identifier "local_b4") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x88)" (( "(") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_bc = param_2[1];" (assignment_expression "local_bc = param_2[1]" (identifier "local_bc") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_ac = param_2[8];" (assignment_expression "local_ac = param_2[8]" (identifier "local_ac") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_b8 = param_2[0xa5];" (assignment_expression "local_b8 = param_2[0xa5]" (identifier "local_b8") (= "=") (subscript_expression "param_2[0xa5]" (identifier "param_2") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (iVar1 != 0) {\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = param_2[0xaa];\n            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);\n            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);\n            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = param_2[0xaa];" (assignment_expression "iVar2 = param_2[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (identifier "local_a0") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 8) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_98") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x14) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_90") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x20) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);\n            }" ({ "{") (expression_statement "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_88") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x2c) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);\n              local_b8 = 4;\n            }" ({ "{") (expression_statement "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_80") (= "=") (pointer_expression "*(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x38) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_b8 = 4;" (assignment_expression "local_b8 = 4" (identifier "local_b8") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);\n            }" ({ "{") (expression_statement "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_78") (= "=") (pointer_expression "*(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "iVar1 + *(int *)(iVar2 + 0x44) * 8" (identifier "iVar1") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ResetMagickMemory(&local_70,0,0x50);" (call_expression "ResetMagickMemory(&local_70,0,0x50)" (identifier "ResetMagickMemory") (argument_list "(&local_70,0,0x50)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")"))) (; ";")) (expression_statement "local_70 = *param_3;" (assignment_expression "local_70 = *param_3" (identifier "local_70") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_30 = (double)DAT_0029f710;" (assignment_expression "local_30 = (double)DAT_0029f710" (identifier "local_30") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (expression_statement "local_64 = *(undefined8 *)(param_3 + 0x88);" (assignment_expression "local_64 = *(undefined8 *)(param_3 + 0x88)" (identifier "local_64") (= "=") (pointer_expression "*(undefined8 *)(param_3 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x88)" (( "(") (binary_expression "param_3 + 0x88" (identifier "param_3") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "local_6c = param_3[1];" (assignment_expression "local_6c = param_3[1]" (identifier "local_6c") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_5c = param_3[8];" (assignment_expression "local_5c = param_3[8]" (identifier "local_5c") (= "=") (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_68 = param_3[0xa5];" (assignment_expression "local_68 = param_3[0xa5]" (identifier "local_68") (= "=") (subscript_expression "param_3[0xa5]" (identifier "param_3") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (if_statement "if (local_ec != 0) {\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" (if "if") (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = param_3[0xaa];\n            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);\n            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);\n            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);\n            if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }\n            if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }\n            if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = param_3[0xaa];" (assignment_expression "iVar2 = param_3[0xaa]" (identifier "iVar2") (= "=") (subscript_expression "param_3[0xaa]" (identifier "param_3") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);" (assignment_expression "local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (identifier "local_50") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 8) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 8) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 8) * 8" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);" (assignment_expression "local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (identifier "local_48") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x14) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x14) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x14) * 8" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);" (assignment_expression "local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (identifier "local_40") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x20) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x20) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x20) * 8" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) != 0) {\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) != 0" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);\n            }" ({ "{") (expression_statement "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);" (assignment_expression "local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (identifier "local_38") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x2c) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x2c) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x2c) * 8" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x34) != 0) {\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x34) != 0" (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);\n              local_68 = 4;\n            }" ({ "{") (expression_statement "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);" (assignment_expression "local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (identifier "local_30") (= "=") (pointer_expression "*(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x38) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x38) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x38) * 8" (pointer_expression "*(int *)(iVar2 + 0x38)" (* "*") (cast_expression "(int *)(iVar2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "local_68 = 4;" (assignment_expression "local_68 = 4" (identifier "local_68") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x40) != 0) {\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);\n            }" ({ "{") (expression_statement "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);" (assignment_expression "local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (identifier "local_28") (= "=") (pointer_expression "*(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (* "*") (cast_expression "(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + *(int *)(iVar2 + 0x44) * 8)" (( "(") (binary_expression "local_ec + *(int *)(iVar2 + 0x44) * 8" (identifier "local_ec") (+ "+") (binary_expression "*(int *)(iVar2 + 0x44) * 8" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar2 = FUN_000ea1f0();" (assignment_expression "iVar2 = FUN_000ea1f0()" (identifier "iVar2") (= "=") (call_expression "FUN_000ea1f0()" (identifier "FUN_000ea1f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;\n            break;\n          }" ({ "{") (if_statement "if (local_e8 < (int)param_2[6]) goto LAB_000ead14;" (if "if") (parenthesized_expression "(local_e8 < (int)param_2[6])" (( "(") (binary_expression "local_e8 < (int)param_2[6]" (identifier "local_e8") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (goto_statement "goto LAB_000ead14;" (goto "goto") (statement_identifier "LAB_000ead14") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_e8 = local_e8 + 1;" (assignment_expression "local_e8 = local_e8 + 1" (identifier "local_e8") (= "=") (binary_expression "local_e8 + 1" (identifier "local_e8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = iVar1 + param_2[0xa6] * 8;" (assignment_expression "iVar1 = iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (= "=") (binary_expression "iVar1 + param_2[0xa6] * 8" (identifier "iVar1") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_ec = local_ec + param_3[0xa6] * 8;" (assignment_expression "local_ec = local_ec + param_3[0xa6] * 8" (identifier "local_ec") (= "=") (binary_expression "local_ec + param_3[0xa6] * 8" (identifier "local_ec") (+ "+") (binary_expression "param_3[0xa6] * 8" (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_e8 < (int)param_2[6])" (( "(") (binary_expression "local_e8 < (int)param_2[6]" (identifier "local_e8") (< "<") (cast_expression "(int)param_2[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) () ")")) (; ";")) (} "}"))) (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"))) (; ";")) (if_statement "if (local_d8 == -1) break;" (if "if") (parenthesized_expression "(local_d8 == -1)" (( "(") (binary_expression "local_d8 == -1" (identifier "local_d8") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000ead14:\n  *param_1 = local_d0;" (statement_identifier "LAB_000ead14") (: ":") (expression_statement "*param_1 = local_d0;" (assignment_expression "*param_1 = local_d0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_d0")) (; ";"))) (expression_statement "param_1[3] = local_dc;" (assignment_expression "param_1[3] = local_dc" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "param_1[1] = (local_d8 - local_dc) + 1;" (assignment_expression "param_1[1] = (local_d8 - local_dc) + 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(local_d8 - local_dc) + 1" (parenthesized_expression "(local_d8 - local_dc)" (( "(") (binary_expression "local_d8 - local_dc" (identifier "local_d8") (- "-") (identifier "local_dc")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[2] = local_e0;" (assignment_expression "param_1[2] = local_e0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_e0")) (; ";")) (labeled_statement "LAB_000ea593:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" (statement_identifier "LAB_000ea593") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" ({ "{") (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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 */

RectangleInfo * __regparm3
CompareImagesBounds(RectangleInfo *__return_storage_ptr__,Image *image1,Image *image2,
                   LayerMethod method,ExceptionInfo *exception)

{
  int var_16;
  type_1 *pPVar2;
  type_2 *var_4;
  type_3 var_10;
  size_t var_14;
  int var_1;
  type_2 *var_5;
  int var_12;
  int var_6;
  int var_13;
  int var_15;
  size_t local_d0;
  type_4 pixel1;
  type_4 pixel2;
  
  var_16 = *(int *)(var_1 + 0x14);
  var_2(image1,&pixel1);
  var_2(image2,&pixel2);
  if (0 < (int)image1->columns) {
    var_6 = 0;
    do {
      var_4 = var_3(image1,var_6,0,1,image1->var_14,exception);
      var_5 = var_3(image2,var_6,0,1,image2->var_14,exception);
      if ((var_4 == (type_2 *)0x0) || (var_5 == (type_2 *)0x0)) {
LAB_000ea5c0:
        if (var_6 < (int)image1->columns) {
          var_14 = image1->var_14;
          var_13 = image1->columns - 1;
          goto LAB_000ea5d8;
        }
        break;
      }
      if (0 < (int)image1->var_14) {
        var_12 = 0;
        do {
          var_7(&pixel1,0,0x50);
          pixel1.storage_class = image1->storage_class;
          pixel1.alpha = (type_5)DAT_0029f710;
          pixel1.fuzz = image1->fuzz;
          pixel1.colorspace = image1->colorspace;
          pixel1.depth = image1->depth;
          pixel1.alpha_trait = image1->alpha_trait;
          if (var_4 != (type_2 *)0x0) {
            pPVar2 = image1->channel_map;
            pixel1.red = var_4[pPVar2->offset];
            pixel1.green = var_4[pPVar2[1].offset];
            pixel1.blue = var_4[pPVar2[2].offset];
            if (pPVar2[3].traits != var_8) {
              pixel1.black = var_4[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != var_8) {
              pixel1.alpha = var_4[pPVar2[4].offset];
              pixel1.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != var_8) {
              pixel1.index = var_4[pPVar2[5].offset];
            }
          }
          var_7(&pixel2,0,0x50);
          pixel2.storage_class = image2->storage_class;
          pixel2.alpha = (type_5)DAT_0029f710;
          pixel2.fuzz = image2->fuzz;
          pixel2.colorspace = image2->colorspace;
          pixel2.depth = image2->depth;
          pixel2.alpha_trait = image2->alpha_trait;
          if (var_5 != (type_2 *)0x0) {
            pPVar2 = image2->channel_map;
            pixel2.red = var_5[pPVar2->offset];
            pixel2.green = var_5[pPVar2[1].offset];
            pixel2.blue = var_5[pPVar2[2].offset];
            if (pPVar2[3].traits != var_8) {
              pixel2.black = var_5[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != var_8) {
              pixel2.alpha = var_5[pPVar2[4].offset];
              pixel2.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != var_8) {
              pixel2.index = var_5[pPVar2[5].offset];
            }
          }
          var_10 = var_9(method,&pixel1,&pixel2);
          if (var_10 != var_11) {
            if (var_12 < (int)image1->var_14) goto LAB_000ea5c0;
            break;
          }
          var_12 = var_12 + 1;
          var_4 = var_4 + image1->number_channels;
          var_5 = var_5 + image2->number_channels;
        } while (var_12 < (int)image1->var_14);
      }
      var_6 = var_6 + 1;
    } while (var_6 < (int)image1->columns);
  }
  __return_storage_ptr__->width = 1;
  __return_storage_ptr__->height = 1;
  __return_storage_ptr__->x = -1;
  __return_storage_ptr__->y = -1;
  goto LAB_000ea593;
LAB_000ea5d8:
  do {
    var_4 = var_3(image1,var_13,0,1,var_14,exception);
    var_5 = var_3(image2,var_13,0,1,image2->var_14,exception);
    var_14 = image1->var_14;
    if ((var_4 == (type_2 *)0x0) || (var_5 == (type_2 *)0x0)) break;
    if (0 < (int)var_14) {
      var_12 = 0;
      do {
        var_7(&pixel1,0,0x50);
        pixel1.storage_class = image1->storage_class;
        pixel1.alpha = (type_5)DAT_0029f710;
        pixel1.fuzz = image1->fuzz;
        pixel1.colorspace = image1->colorspace;
        pixel1.depth = image1->depth;
        pixel1.alpha_trait = image1->alpha_trait;
        if (var_4 != (type_2 *)0x0) {
          pPVar2 = image1->channel_map;
          pixel1.red = var_4[pPVar2->offset];
          pixel1.green = var_4[pPVar2[1].offset];
          pixel1.blue = var_4[pPVar2[2].offset];
          if (pPVar2[3].traits != var_8) {
            pixel1.black = var_4[pPVar2[3].offset];
          }
          if (pPVar2[4].traits != var_8) {
            pixel1.alpha = var_4[pPVar2[4].offset];
            pixel1.alpha_trait = BlendPixelTrait;
          }
          if (pPVar2[5].traits != var_8) {
            pixel1.index = var_4[pPVar2[5].offset];
          }
        }
        var_7(&pixel2,0,0x50);
        pixel2.storage_class = image2->storage_class;
        pixel2.alpha = (type_5)DAT_0029f710;
        pixel2.fuzz = image2->fuzz;
        pixel2.colorspace = image2->colorspace;
        pixel2.depth = image2->depth;
        pixel2.alpha_trait = image2->alpha_trait;
        if (var_5 != (type_2 *)0x0) {
          pPVar2 = image2->channel_map;
          pixel2.red = var_5[pPVar2->offset];
          pixel2.green = var_5[pPVar2[1].offset];
          pixel2.blue = var_5[pPVar2[2].offset];
          if (pPVar2[3].traits != var_8) {
            pixel2.black = var_5[pPVar2[3].offset];
          }
          if (pPVar2[4].traits != var_8) {
            pixel2.alpha = var_5[pPVar2[4].offset];
            pixel2.alpha_trait = BlendPixelTrait;
          }
          if (pPVar2[5].traits != var_8) {
            pixel2.index = var_5[pPVar2[5].offset];
          }
        }
        var_10 = var_9(method,&pixel1,&pixel2);
        var_14 = image1->var_14;
        if (var_10 != var_11) {
          if (var_12 < (int)var_14) {
            local_d0 = (var_13 - var_6) + 1;
            goto LAB_000ea847;
          }
          break;
        }
        var_12 = var_12 + 1;
        var_4 = var_4 + image1->number_channels;
        var_5 = var_5 + image2->number_channels;
      } while (var_12 < (int)var_14);
    }
    var_13 = var_13 + -1;
  } while (var_13 != -1);
  local_d0 = (var_13 - var_6) + 1;
  if ((int)var_14 < 1) {
    var_13 = 0;
  }
  else {
LAB_000ea847:
    var_13 = 0;
    do {
      var_4 = var_3(image1,0,var_13,image1->columns,1,exception);
      var_5 = var_3(image2,0,var_13,image2->columns,1,exception);
      if ((var_4 == (type_2 *)0x0) || (var_5 == (type_2 *)0x0)) {
LAB_000ead3d:
        var_14 = image1->var_14;
        break;
      }
      if (0 < (int)image1->columns) {
        var_12 = 0;
        do {
          var_7(&pixel1,0,0x50);
          pixel1.storage_class = image1->storage_class;
          pixel1.alpha = (type_5)DAT_0029f710;
          pixel1.fuzz = image1->fuzz;
          pixel1.colorspace = image1->colorspace;
          pixel1.depth = image1->depth;
          pixel1.alpha_trait = image1->alpha_trait;
          if (var_4 != (type_2 *)0x0) {
            pPVar2 = image1->channel_map;
            pixel1.red = var_4[pPVar2->offset];
            pixel1.green = var_4[pPVar2[1].offset];
            pixel1.blue = var_4[pPVar2[2].offset];
            if (pPVar2[3].traits != var_8) {
              pixel1.black = var_4[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != var_8) {
              pixel1.alpha = var_4[pPVar2[4].offset];
              pixel1.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != var_8) {
              pixel1.index = var_4[pPVar2[5].offset];
            }
          }
          var_7(&pixel2,0,0x50);
          pixel2.storage_class = image2->storage_class;
          pixel2.alpha = (type_5)DAT_0029f710;
          pixel2.fuzz = image2->fuzz;
          pixel2.colorspace = image2->colorspace;
          pixel2.depth = image2->depth;
          pixel2.alpha_trait = image2->alpha_trait;
          if (var_5 != (type_2 *)0x0) {
            pPVar2 = image2->channel_map;
            pixel2.red = var_5[pPVar2->offset];
            pixel2.green = var_5[pPVar2[1].offset];
            pixel2.blue = var_5[pPVar2[2].offset];
            if (pPVar2[3].traits != var_8) {
              pixel2.black = var_5[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != var_8) {
              pixel2.alpha = var_5[pPVar2[4].offset];
              pixel2.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != var_8) {
              pixel2.index = var_5[pPVar2[5].offset];
            }
          }
          var_10 = var_9(method,&pixel1,&pixel2);
          if (var_10 != var_11) {
            if (var_12 < (int)image1->columns) goto LAB_000ead3d;
            break;
          }
          var_12 = var_12 + 1;
          var_4 = var_4 + image1->number_channels;
          var_5 = var_5 + image2->number_channels;
        } while (var_12 < (int)image1->columns);
      }
      var_13 = var_13 + 1;
      var_14 = image1->var_14;
    } while (var_13 < (int)var_14);
  }
  var_15 = var_14 - 1;
  if (-1 < var_15) {
    while( true ) {
      var_4 = var_3(image1,0,var_15,image1->columns,1,exception);
      var_5 = var_3(image2,0,var_15,image2->columns,1,exception);
      if ((var_4 == (type_2 *)0x0) || (var_5 == (type_2 *)0x0)) break;
      if (0 < (int)image1->columns) {
        var_12 = 0;
        do {
          var_7(&pixel1,0,0x50);
          pixel1.storage_class = image1->storage_class;
          pixel1.alpha = (type_5)DAT_0029f710;
          pixel1.fuzz = image1->fuzz;
          pixel1.colorspace = image1->colorspace;
          pixel1.depth = image1->depth;
          pixel1.alpha_trait = image1->alpha_trait;
          if (var_4 != (type_2 *)0x0) {
            pPVar2 = image1->channel_map;
            pixel1.red = var_4[pPVar2->offset];
            pixel1.green = var_4[pPVar2[1].offset];
            pixel1.blue = var_4[pPVar2[2].offset];
            if (pPVar2[3].traits != var_8) {
              pixel1.black = var_4[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != var_8) {
              pixel1.alpha = var_4[pPVar2[4].offset];
              pixel1.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != var_8) {
              pixel1.index = var_4[pPVar2[5].offset];
            }
          }
          var_7(&pixel2,0,0x50);
          pixel2.storage_class = image2->storage_class;
          pixel2.alpha = (type_5)DAT_0029f710;
          pixel2.fuzz = image2->fuzz;
          pixel2.colorspace = image2->colorspace;
          pixel2.depth = image2->depth;
          pixel2.alpha_trait = image2->alpha_trait;
          if (var_5 != (type_2 *)0x0) {
            pPVar2 = image2->channel_map;
            pixel2.red = var_5[pPVar2->offset];
            pixel2.green = var_5[pPVar2[1].offset];
            pixel2.blue = var_5[pPVar2[2].offset];
            if (pPVar2[3].traits != var_8) {
              pixel2.black = var_5[pPVar2[3].offset];
            }
            if (pPVar2[4].traits != var_8) {
              pixel2.alpha = var_5[pPVar2[4].offset];
              pixel2.alpha_trait = BlendPixelTrait;
            }
            if (pPVar2[5].traits != var_8) {
              pixel2.index = var_5[pPVar2[5].offset];
            }
          }
          var_10 = var_9(method,&pixel1,&pixel2);
          if (var_10 != var_11) {
            if (var_12 < (int)image1->columns) goto LAB_000ead14;
            break;
          }
          var_12 = var_12 + 1;
          var_4 = var_4 + image1->number_channels;
          var_5 = var_5 + image2->number_channels;
        } while (var_12 < (int)image1->columns);
      }
      var_15 = var_15 + -1;
      if (var_15 == -1) break;
    }
  }
LAB_000ead14:
  __return_storage_ptr__->width = local_d0;
  __return_storage_ptr__->y = var_13;
  __return_storage_ptr__->height = (var_15 - var_13) + 1;
  __return_storage_ptr__->x = var_6;
LAB_000ea593:
  if (var_16 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_17();
  }
  return __return_storage_ptr__;
}


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

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

int * __regparm3
MASKED(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,
            undefined4 param_5)

{
  int iVar1;
  int iVar2;
  int in_GS_OFFSET;
  int local_ec;
  int local_e8;
  int local_e0;
  int local_dc;
  int local_d8;
  int local_d0;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined8 local_b4;
  undefined4 local_ac;
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  double local_80;
  undefined8 local_78;
  undefined4 local_70;
  undefined4 local_6c;
  undefined4 local_68;
  undefined8 local_64;
  undefined4 local_5c;
  undefined8 local_50;
  undefined8 local_48;
  undefined8 local_40;
  undefined8 local_38;
  double local_30;
  undefined8 local_28;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xea2bd;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  GetPixelInfo(param_2,&local_c0);
  GetPixelInfo(param_3,&local_70);
  if (0 < (int)param_2[6]) {
    local_e0 = 0;
    do {
      iVar1 = GetVirtualPixels(param_2,local_e0,0,1,param_2[7],param_5);
      local_ec = GetVirtualPixels(param_3,local_e0,0,1,param_3[7],param_5);
      if ((iVar1 == 0) || (local_ec == 0)) {
LAB_000ea5c0:
        if (local_e0 < (int)param_2[6]) {
          local_d8 = param_2[7];
          local_dc = param_2[6] + -1;
          goto LAB_000ea5d8;
        }
        break;
      }
      if (0 < (int)param_2[7]) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&local_c0,0,0x50);
          local_c0 = *param_2;
          local_80 = (double)DAT_0029f710;
          local_b4 = *(undefined8 *)(param_2 + 0x88);
          local_bc = param_2[1];
          local_ac = param_2[8];
          local_b8 = param_2[0xa5];
          if (iVar1 != 0) {
            iVar2 = param_2[0xaa];
            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
              local_b8 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          ResetMagickMemory(&local_70,0,0x50);
          local_70 = *param_3;
          local_30 = (double)DAT_0029f710;
          local_64 = *(undefined8 *)(param_3 + 0x88);
          local_6c = param_3[1];
          local_5c = param_3[8];
          local_68 = param_3[0xa5];
          if (local_ec != 0) {
            iVar2 = param_3[0xaa];
            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
              local_68 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          iVar2 = FUN_000ea1f0();
          if (iVar2 != 0) {
            if (local_e8 < (int)param_2[7]) goto LAB_000ea5c0;
            break;
          }
          local_e8 = local_e8 + 1;
          iVar1 = iVar1 + param_2[0xa6] * 8;
          local_ec = local_ec + param_3[0xa6] * 8;
        } while (local_e8 < (int)param_2[7]);
      }
      local_e0 = local_e0 + 1;
    } while (local_e0 < (int)param_2[6]);
  }
  *param_1 = 1;
  param_1[1] = 1;
  param_1[2] = -1;
  param_1[3] = -1;
  goto LAB_000ea593;
LAB_000ea5d8:
  do {
    iVar1 = GetVirtualPixels(param_2,local_dc,0,1,local_d8,param_5);
    local_ec = GetVirtualPixels(param_3,local_dc,0,1,param_3[7],param_5);
    local_d8 = param_2[7];
    if ((iVar1 == 0) || (local_ec == 0)) break;
    if (0 < local_d8) {
      local_e8 = 0;
      do {
        ResetMagickMemory(&local_c0,0,0x50);
        local_c0 = *param_2;
        local_80 = (double)DAT_0029f710;
        local_b4 = *(undefined8 *)(param_2 + 0x88);
        local_bc = param_2[1];
        local_ac = param_2[8];
        local_b8 = param_2[0xa5];
        if (iVar1 != 0) {
          iVar2 = param_2[0xaa];
          local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
          local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
          local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
          if (*(int *)(iVar2 + 0x28) != 0) {
            local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
          }
          if (*(int *)(iVar2 + 0x34) != 0) {
            local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
            local_b8 = 4;
          }
          if (*(int *)(iVar2 + 0x40) != 0) {
            local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
          }
        }
        ResetMagickMemory(&local_70,0,0x50);
        local_70 = *param_3;
        local_30 = (double)DAT_0029f710;
        local_64 = *(undefined8 *)(param_3 + 0x88);
        local_6c = param_3[1];
        local_5c = param_3[8];
        local_68 = param_3[0xa5];
        if (local_ec != 0) {
          iVar2 = param_3[0xaa];
          local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
          local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
          local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
          if (*(int *)(iVar2 + 0x28) != 0) {
            local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
          }
          if (*(int *)(iVar2 + 0x34) != 0) {
            local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
            local_68 = 4;
          }
          if (*(int *)(iVar2 + 0x40) != 0) {
            local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
          }
        }
        iVar2 = FUN_000ea1f0();
        local_d8 = param_2[7];
        if (iVar2 != 0) {
          if (local_e8 < local_d8) {
            local_d0 = (local_dc - local_e0) + 1;
            goto LAB_000ea847;
          }
          break;
        }
        local_e8 = local_e8 + 1;
        iVar1 = iVar1 + param_2[0xa6] * 8;
        local_ec = local_ec + param_3[0xa6] * 8;
      } while (local_e8 < local_d8);
    }
    local_dc = local_dc + -1;
  } while (local_dc != -1);
  local_d0 = (local_dc - local_e0) + 1;
  if (local_d8 < 1) {
    local_dc = 0;
  }
  else {
LAB_000ea847:
    local_dc = 0;
    do {
      iVar1 = GetVirtualPixels(param_2,0,local_dc,param_2[6],1,param_5);
      local_ec = GetVirtualPixels(param_3,0,local_dc,param_3[6],1,param_5);
      if ((iVar1 == 0) || (local_ec == 0)) {
LAB_000ead3d:
        local_d8 = param_2[7];
        break;
      }
      if (0 < (int)param_2[6]) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&local_c0,0,0x50);
          local_c0 = *param_2;
          local_80 = (double)DAT_0029f710;
          local_b4 = *(undefined8 *)(param_2 + 0x88);
          local_bc = param_2[1];
          local_ac = param_2[8];
          local_b8 = param_2[0xa5];
          if (iVar1 != 0) {
            iVar2 = param_2[0xaa];
            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
              local_b8 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          ResetMagickMemory(&local_70,0,0x50);
          local_70 = *param_3;
          local_30 = (double)DAT_0029f710;
          local_64 = *(undefined8 *)(param_3 + 0x88);
          local_6c = param_3[1];
          local_5c = param_3[8];
          local_68 = param_3[0xa5];
          if (local_ec != 0) {
            iVar2 = param_3[0xaa];
            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
              local_68 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          iVar2 = FUN_000ea1f0();
          if (iVar2 != 0) {
            if (local_e8 < (int)param_2[6]) goto LAB_000ead3d;
            break;
          }
          local_e8 = local_e8 + 1;
          iVar1 = iVar1 + param_2[0xa6] * 8;
          local_ec = local_ec + param_3[0xa6] * 8;
        } while (local_e8 < (int)param_2[6]);
      }
      local_dc = local_dc + 1;
      local_d8 = param_2[7];
    } while (local_dc < local_d8);
  }
  local_d8 = local_d8 + -1;
  if (-1 < local_d8) {
    while( true ) {
      iVar1 = GetVirtualPixels(param_2,0,local_d8,param_2[6],1,param_5);
      local_ec = GetVirtualPixels(param_3,0,local_d8,param_3[6],1,param_5);
      if ((iVar1 == 0) || (local_ec == 0)) break;
      if (0 < (int)param_2[6]) {
        local_e8 = 0;
        do {
          ResetMagickMemory(&local_c0,0,0x50);
          local_c0 = *param_2;
          local_80 = (double)DAT_0029f710;
          local_b4 = *(undefined8 *)(param_2 + 0x88);
          local_bc = param_2[1];
          local_ac = param_2[8];
          local_b8 = param_2[0xa5];
          if (iVar1 != 0) {
            iVar2 = param_2[0xaa];
            local_a0 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 8) * 8);
            local_98 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x14) * 8);
            local_90 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_88 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_80 = *(double *)(iVar1 + *(int *)(iVar2 + 0x38) * 8);
              local_b8 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_78 = *(undefined8 *)(iVar1 + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          ResetMagickMemory(&local_70,0,0x50);
          local_70 = *param_3;
          local_30 = (double)DAT_0029f710;
          local_64 = *(undefined8 *)(param_3 + 0x88);
          local_6c = param_3[1];
          local_5c = param_3[8];
          local_68 = param_3[0xa5];
          if (local_ec != 0) {
            iVar2 = param_3[0xaa];
            local_50 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 8) * 8);
            local_48 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x14) * 8);
            local_40 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x20) * 8);
            if (*(int *)(iVar2 + 0x28) != 0) {
              local_38 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x2c) * 8);
            }
            if (*(int *)(iVar2 + 0x34) != 0) {
              local_30 = *(double *)(local_ec + *(int *)(iVar2 + 0x38) * 8);
              local_68 = 4;
            }
            if (*(int *)(iVar2 + 0x40) != 0) {
              local_28 = *(undefined8 *)(local_ec + *(int *)(iVar2 + 0x44) * 8);
            }
          }
          iVar2 = FUN_000ea1f0();
          if (iVar2 != 0) {
            if (local_e8 < (int)param_2[6]) goto LAB_000ead14;
            break;
          }
          local_e8 = local_e8 + 1;
          iVar1 = iVar1 + param_2[0xa6] * 8;
          local_ec = local_ec + param_3[0xa6] * 8;
        } while (local_e8 < (int)param_2[6]);
      }
      local_d8 = local_d8 + -1;
      if (local_d8 == -1) break;
    }
  }
LAB_000ead14:
  *param_1 = local_d0;
  param_1[3] = local_dc;
  param_1[1] = (local_d8 - local_dc) + 1;
  param_1[2] = local_e0;
LAB_000ea593:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return param_1;
}

