
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "ComplianceType": Some values do not have unique names */
/* DWARF original prototype: void GetEdgeBackgroundColor._omp_fn.1(anon_struct_48_6_a27eb3c1 *
   param_0) */

void __thiscall GetEdgeBackgroundColor__omp_fn_1(void *this)

{
  char *name;
  ExceptionInfo *exception;
  CacheView *cache_view;
  Image *image;
  PixelChannelMap *pPVar1;
  undefined1 auVar2 [16];
  int iVar3;
  int iVar4;
  MagickBooleanType MVar5;
  long lVar6;
  Quantum *pQVar7;
  Image *image_00;
  CacheView *cache_view_00;
  double *pdVar8;
  ClassType *memory;
  long lVar9;
  long lVar10;
  long in_FS_OFFSET;
  long local_100;
  long local_e8;
  RectangleInfo local_b8;
  PixelInfo local_98;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar3 = omp_get_num_threads();
  iVar4 = omp_get_thread_num();
  auVar2._8_8_ = 0;
  auVar2._0_8_ = SUB168(SEXT816(4),8);
  auVar2 = auVar2 << 0x40 | ZEXT816(4);
  lVar6 = SUB168(auVar2 / SEXT816((long)iVar3),0);
  local_e8 = SUB168(auVar2 % SEXT816((long)iVar3),0);
  if (iVar4 < local_e8) {
    lVar6 = lVar6 + 1;
    local_e8 = 0;
  }
  local_e8 = iVar4 * lVar6 + local_e8;
  lVar6 = lVar6 + local_e8;
  if (local_e8 < lVar6) {
    name = *(char **)((long)this + 0x18);
    exception = *(ExceptionInfo **)((long)this + 0x10);
    cache_view = *(CacheView **)((long)this + 8);
                    /* WARNING: Load size is inaccurate */
    image = *this;
    lVar10 = local_e8 * 0x58;
    do {
      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;
      local_b8.width = 0;
      local_b8.height = 0;
      local_b8.x = 0;
      local_b8.y = 0;
      if (local_e8 == 2) {
LAB_0015a297:
        local_b8.height = 0;
        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);
        local_b8.height = 1;
      }
      else if (local_e8 != 3) {
        if (local_e8 != 1) {
          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);
        }
        local_b8.height = 0;
        local_b8.width = (size_t)(local_e8 != 1);
        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);
        local_b8.width = 1;
        goto LAB_0015a297;
      }
      local_b8.width = 0;
      pQVar7 = GetCacheViewVirtualPixels
                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);
      local_b8.width = 0;
      local_b8.height = 1;
      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));
      ResetMagickMemory(memory,0,0x58);
      *memory = DirectClass;
      memory[1] = 0x17;
      memory[6] = 0x10;
      memory[7] = UndefinedClass;
      memory[2] = UndefinedClass;
      *(double *)(memory + 0x12) = DAT_003f95f8;
      if (image != (Image *)0x0) {
        *memory = image->storage_class;
        memory[1] = image->colorspace;
        *(double *)(memory + 4) = image->fuzz;
        *(size_t *)(memory + 6) = image->depth;
        memory[2] = image->alpha_trait;
        if (pQVar7 != (Quantum *)0x0) {
          pPVar1 = image->channel_map;
          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];
          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];
          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];
          if (pPVar1[3].traits != UndefinedPixelTrait) {
            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];
          }
          if (pPVar1[4].traits != UndefinedPixelTrait) {
            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];
            memory[2] = 4;
          }
          if (pPVar1[5].traits != UndefinedPixelTrait) {
            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];
          }
        }
      }
      if (name != (char *)0x0) {
        QueryColorCompliance
                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception
                  );
      }
      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);
      image_00 = CropImage(image,&local_b8,exception);
      if (image_00 != (Image *)0x0) {
        cache_view_00 = AcquireVirtualCacheView(image_00,exception);
        local_100 = 0;
        if (0 < (long)image_00->rows) {
          do {
            pQVar7 = GetCacheViewVirtualPixels
                               (cache_view_00,0,local_100,image_00->columns,1,exception);
            if (pQVar7 == (Quantum *)0x0) break;
            lVar9 = 0;
            if (0 < (long)image_00->columns) {
              do {
                ResetMagickMemory(&local_98,0,0x58);
                local_98.alpha = DAT_003f95f8;
                local_98.storage_class = image_00->storage_class;
                local_98.colorspace = image_00->colorspace;
                local_98.fuzz = image_00->fuzz;
                local_98.depth = image_00->depth;
                local_98.alpha_trait = image_00->alpha_trait;
                if (pQVar7 != (Quantum *)0x0) {
                  pPVar1 = image_00->channel_map;
                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];
                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];
                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];
                  if (pPVar1[3].traits != UndefinedPixelTrait) {
                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];
                  }
                  if (pPVar1[4].traits != UndefinedPixelTrait) {
                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];
                    local_98.alpha_trait = BlendPixelTrait;
                  }
                  if (pPVar1[5].traits != UndefinedPixelTrait) {
                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];
                  }
                }
                MVar5 = IsFuzzyEquivalencePixelInfo
                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));
                if (MVar5 == MagickFalse) {
                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));
                  *pdVar8 = *pdVar8 + DAT_003f9608;
                }
                pQVar7 = pQVar7 + image_00->number_channels;
                lVar9 = lVar9 + 1;
              } while (lVar9 < (long)image_00->columns);
            }
            local_100 = local_100 + 1;
          } while (local_100 < (long)image_00->rows);
        }
        DestroyCacheView(cache_view_00);
        DestroyImage(image_00);
      }
      local_e8 = local_e8 + 1;
      lVar10 = lVar10 + 0x58;
    } while (lVar6 != local_e8);
  }
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}



void FUN_0015a0f0(undefined8 *param_1)

{
  long lVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined4 *puVar4;
  long lVar5;
  undefined1 auVar6 [16];
  int iVar7;
  int iVar8;
  long lVar9;
  long lVar10;
  undefined8 uVar11;
  double *pdVar12;
  undefined4 *puVar13;
  long lVar14;
  long lVar15;
  long in_FS_OFFSET;
  long local_100;
  long local_e8;
  ulong local_b8 [4];
  undefined4 local_98;
  undefined4 local_94;
  undefined4 local_90;
  undefined8 local_88;
  undefined8 local_80;
  double local_70;
  double local_68;
  double local_60;
  double local_58;
  double local_50;
  double local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar7 = omp_get_num_threads();
  iVar8 = omp_get_thread_num();
  auVar6._8_8_ = 0;
  auVar6._0_8_ = SUB168(SEXT816(4),8);
  auVar6 = auVar6 << 0x40 | ZEXT816(4);
  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);
  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);
  if (iVar8 < local_e8) {
    lVar9 = lVar9 + 1;
    local_e8 = 0;
  }
  local_e8 = iVar8 * lVar9 + local_e8;
  lVar9 = lVar9 + local_e8;
  if (local_e8 < lVar9) {
    lVar1 = param_1[3];
    uVar2 = param_1[2];
    uVar3 = param_1[1];
    puVar4 = (undefined4 *)*param_1;
    lVar15 = local_e8 * 0x58;
    do {
      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;
      local_b8[0] = 0;
      local_b8[1] = 0;
      local_b8[2] = 0;
      local_b8[3] = 0;
      if (local_e8 == 2) {
LAB_0015a297:
        local_b8[1] = 0;
        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);
        local_b8[1] = 1;
      }
      else if (local_e8 != 3) {
        if (local_e8 != 1) {
          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);
        }
        local_b8[1] = 0;
        local_b8[0] = (ulong)(local_e8 != 1);
        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);
        local_b8[0] = 1;
        goto LAB_0015a297;
      }
      local_b8[0] = 0;
      lVar10 = GetCacheViewVirtualPixels
                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);
      local_b8[0] = 0;
      local_b8[1] = 1;
      puVar13 = (undefined4 *)(lVar15 + param_1[5]);
      ResetMagickMemory(puVar13,0,0x58);
      *puVar13 = 1;
      puVar13[1] = 0x17;
      *(undefined8 *)(puVar13 + 6) = 0x10;
      puVar13[2] = 0;
      *(double *)(puVar13 + 0x12) = DAT_003f95f8;
      if (puVar4 != (undefined4 *)0x0) {
        *puVar13 = *puVar4;
        puVar13[1] = puVar4[1];
        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);
        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);
        puVar13[2] = puVar4[0xcf];
        if (lVar10 != 0) {
          lVar14 = *(long *)(puVar4 + 0xd8);
          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);
          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);
          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);
          if (*(int *)(lVar14 + 0x34) != 0) {
            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);
          }
          if (*(int *)(lVar14 + 0x44) != 0) {
            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);
            puVar13[2] = 4;
          }
          if (*(int *)(lVar14 + 0x54) != 0) {
            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);
          }
        }
      }
      if (lVar1 != 0) {
        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);
      }
      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);
      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);
      if (puVar13 != (undefined4 *)0x0) {
        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);
        local_100 = 0;
        if (0 < *(long *)(puVar13 + 10)) {
          do {
            lVar10 = GetCacheViewVirtualPixels
                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);
            if (lVar10 == 0) break;
            lVar14 = 0;
            if (0 < *(long *)(puVar13 + 8)) {
              do {
                ResetMagickMemory(&local_98,0,0x58);
                local_50 = DAT_003f95f8;
                local_98 = *puVar13;
                local_94 = puVar13[1];
                local_88 = *(undefined8 *)(puVar13 + 0xa6);
                local_80 = *(undefined8 *)(puVar13 + 0xc);
                local_90 = puVar13[0xcf];
                if (lVar10 != 0) {
                  lVar5 = *(long *)(puVar13 + 0xd8);
                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);
                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);
                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);
                  if (*(int *)(lVar5 + 0x34) != 0) {
                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);
                  }
                  if (*(int *)(lVar5 + 0x44) != 0) {
                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);
                    local_90 = 4;
                  }
                  if (*(int *)(lVar5 + 0x54) != 0) {
                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);
                  }
                }
                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);
                if (iVar7 == 0) {
                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);
                  *pdVar12 = *pdVar12 + DAT_003f9608;
                }
                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;
                lVar14 = lVar14 + 1;
              } while (lVar14 < *(long *)(puVar13 + 8));
            }
            local_100 = local_100 + 1;
          } while (local_100 < *(long *)(puVar13 + 10));
        }
        DestroyCacheView(uVar11);
        DestroyImage(puVar13);
      }
      local_e8 = local_e8 + 1;
      lVar15 = lVar15 + 0x58;
    } while (lVar9 != local_e8);
  }
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xd8
MOV R15,RDI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0xc8],RAX
XOR EAX,EAX
CALL 0x00149d40
MOVSXD RBX,EAX
CALL 0x0014af50
MOVSXD RDI,EAX
MOV EAX,0x4
CQO
IDIV RBX
MOV RSI,RAX
MOV RCX,RDX
CMP RDI,RDX
JL 0x0015a6a1
IMUL RDI,RSI
LEA RAX,[RDI + RCX*0x1]
MOV qword ptr [RSP + 0x20],RAX
ADD RSI,RAX
MOV qword ptr [RSP + 0x48],RSI
CMP RAX,RSI
JGE 0x0015a6af
MOV RCX,qword ptr [R15 + 0x18]
MOV qword ptr [RSP + 0x40],RCX
MOV RCX,qword ptr [R15 + 0x10]
MOV qword ptr [RSP + 0x18],RCX
MOV RCX,qword ptr [R15 + 0x8]
MOV qword ptr [RSP + 0x38],RCX
MOV RCX,qword ptr [R15]
MOV qword ptr [RSP + 0x30],RCX
MOV RCX,RAX
LEA RAX,[RAX + RAX*0x4]
LEA RAX,[RCX + RAX*0x2]
LEA R14,[RAX*0x8]
JMP 0x0015a1c2
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0014cc70
MOV RDI,RBX
CALL 0x0014caa0
ADD qword ptr [RSP + 0x20],0x1
MOV RAX,qword ptr [RSP + 0x20]
ADD R14,0x58
CMP qword ptr [RSP + 0x48],RAX
JZ 0x0015a6af
MOV RAX,qword ptr [R15 + 0x20]
MOV RCX,qword ptr [RSP + 0x20]
MOV qword ptr [RAX + RCX*0x8],0x0
MOV qword ptr [RSP + 0x50],0x0
MOV qword ptr [RSP + 0x58],0x0
MOV qword ptr [RSP + 0x60],0x0
MOV qword ptr [RSP + 0x68],0x0
CMP RCX,0x2
JZ 0x0015a297
CMP RCX,0x3
JZ 0x0015a2cd
CMP RCX,0x1
JZ 0x0015a254
MOV RAX,qword ptr [RSP + 0x30]
MOV RAX,qword ptr [RAX + 0x28]
MOV qword ptr [RSP + 0x8],RAX
LEA RDX,[RAX + -0x1]
MOV R9,qword ptr [RSP + 0x18]
MOV R8D,0x1
MOV ECX,0x1
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0014a9a0
MOV qword ptr [RSP + 0x50],0x1
MOV qword ptr [RSP + 0x58],0x0
MOV RAX,qword ptr [RSP + 0x30]
MOV RAX,qword ptr [RAX + 0x20]
MOV qword ptr [RSP + 0x8],RAX
LEA RSI,[RAX + -0x1]
MOV R9,qword ptr [RSP + 0x18]
MOV R8D,0x1
MOV ECX,0x1
MOV EDX,0x0
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0014a9a0
MOV qword ptr [RSP + 0x50],0x1
MOV qword ptr [RSP + 0x58],0x0
MOV R9,qword ptr [RSP + 0x18]
MOV R8D,0x1
MOV ECX,0x1
MOV EDX,0x0
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0014a9a0
MOV qword ptr [RSP + 0x50],0x0
MOV qword ptr [RSP + 0x58],0x1
MOV R12,qword ptr [RSP + 0x30]
MOV RAX,qword ptr [R12 + 0x28]
LEA RDX,[RAX + -0x1]
MOV RAX,qword ptr [R12 + 0x20]
MOV qword ptr [RSP + 0x8],RAX
LEA RSI,[RAX + -0x1]
MOV R9,qword ptr [RSP + 0x18]
MOV R8D,0x1
MOV ECX,0x1
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0014a9a0
MOV RBP,RAX
MOV qword ptr [RSP + 0x50],0x0
MOV qword ptr [RSP + 0x58],0x1
MOV RBX,R14
ADD RBX,qword ptr [R15 + 0x28]
MOV EDX,0x58
MOV ESI,0x0
MOV RDI,RBX
CALL 0x0014c770
MOV dword ptr [RBX],0x1
MOV dword ptr [RBX + 0x4],0x17
MOV qword ptr [RBX + 0x18],0x10
MOV dword ptr [RBX + 0x8],0x0
MOV RAX,qword ptr [0x003f95f8]
MOV qword ptr [RBX + 0x48],RAX
TEST R12,R12
JZ 0x0015a42e
MOV EAX,dword ptr [R12]
MOV dword ptr [RBX],EAX
MOV EAX,dword ptr [R12 + 0x4]
MOV dword ptr [RBX + 0x4],EAX
MOVSD XMM0,qword ptr [R12 + 0x298]
MOVSD qword ptr [RBX + 0x10],XMM0
MOV RAX,qword ptr [R12 + 0x30]
MOV qword ptr [RBX + 0x18],RAX
MOV EAX,dword ptr [R12 + 0x33c]
MOV dword ptr [RBX + 0x8],EAX
TEST RBP,RBP
JZ 0x0015a42e
MOV RAX,qword ptr [R12 + 0x360]
MOV RDX,qword ptr [RAX + 0x8]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RBX + 0x28],XMM0
MOV RDX,qword ptr [RAX + 0x18]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RBX + 0x30],XMM0
MOV RDX,qword ptr [RAX + 0x28]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RBX + 0x38],XMM0
CMP dword ptr [RAX + 0x34],0x0
JZ 0x0015a3f5
MOV RDX,qword ptr [RAX + 0x38]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RBX + 0x40],XMM0
CMP dword ptr [RAX + 0x44],0x0
JZ 0x0015a415
MOV RDX,qword ptr [RAX + 0x48]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RBX + 0x48],XMM0
MOV dword ptr [RBX + 0x8],0x4
CMP dword ptr [RAX + 0x54],0x0
JZ 0x0015a42e
MOV RAX,qword ptr [RAX + 0x58]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RAX*0x4]
MOVSD qword ptr [RBX + 0x50],XMM0
CMP qword ptr [RSP + 0x40],0x0
JZ 0x0015a451
MOV RDX,R14
ADD RDX,qword ptr [R15 + 0x28]
MOV RCX,qword ptr [RSP + 0x18]
MOV ESI,0x7fffffff
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x0014d0b0
LEA RBX,[RSP + 0x50]
MOV RBP,qword ptr [RSP + 0x30]
MOV RSI,qword ptr [RBP + 0x28]
MOV RDI,qword ptr [RBP + 0x20]
MOV RCX,RBX
MOV EDX,0x8
CALL 0x0014d600
MOV RDX,qword ptr [RSP + 0x18]
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0014c3f0
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0015a1a8
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,RAX
CALL 0x0014a510
MOV qword ptr [RSP + 0x28],RAX
MOV qword ptr [RSP + 0x8],0x0
CMP qword ptr [RBX + 0x28],0x0
JLE 0x0015a196
LEA R13,[RSP + 0x70]
JMP 0x0015a4ce
ADD qword ptr [RSP + 0x8],0x1
MOV RAX,qword ptr [RSP + 0x8]
CMP qword ptr [RBX + 0x28],RAX
JLE 0x0015a196
MOV RCX,qword ptr [RBX + 0x20]
MOV R9,qword ptr [RSP + 0x18]
MOV R8D,0x1
MOV RDX,qword ptr [RSP + 0x8]
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0014a9a0
MOV RBP,RAX
TEST RAX,RAX
JZ 0x0015a196
MOV R12D,0x0
MOV RAX,qword ptr [RSP + 0x20]
SHL RAX,0x3
MOV qword ptr [RSP + 0x10],RAX
CMP qword ptr [RBX + 0x20],0x0
JG 0x0015a568
JMP 0x0015a4b9
CMP dword ptr [RAX + 0x54],0x0
JZ 0x0015a537
MOV RAX,qword ptr [RAX + 0x58]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RAX*0x4]
MOVSD qword ptr [RSP + 0xc0],XMM0
MOV RSI,R14
ADD RSI,qword ptr [R15 + 0x28]
MOV RDI,R13
CALL 0x0014c9e0
TEST EAX,EAX
JZ 0x0015a683
MOV RAX,qword ptr [RBX + 0x340]
LEA RBP,[RBP + RAX*0x4]
ADD R12,0x1
CMP qword ptr [RBX + 0x20],R12
JLE 0x0015a4b9
MOV EDX,0x58
MOV ESI,0x0
MOV RDI,R13
CALL 0x0014c770
MOV dword ptr [RSP + 0x70],0x1
MOV dword ptr [RSP + 0x74],0x17
MOV qword ptr [RSP + 0x88],0x10
MOV dword ptr [RSP + 0x78],0x0
MOVSD XMM1,qword ptr [0x003f95f8]
MOVSD qword ptr [RSP + 0xb8],XMM1
MOV EAX,dword ptr [RBX]
MOV dword ptr [RSP + 0x70],EAX
MOV EAX,dword ptr [RBX + 0x4]
MOV dword ptr [RSP + 0x74],EAX
MOVSD XMM0,qword ptr [RBX + 0x298]
MOVSD qword ptr [RSP + 0x80],XMM0
MOV RAX,qword ptr [RBX + 0x30]
MOV qword ptr [RSP + 0x88],RAX
MOV EAX,dword ptr [RBX + 0x33c]
MOV dword ptr [RSP + 0x78],EAX
TEST RBP,RBP
JZ 0x0015a537
MOV RAX,qword ptr [RBX + 0x360]
MOV RDX,qword ptr [RAX + 0x8]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RSP + 0x98],XMM0
MOV RDX,qword ptr [RAX + 0x18]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RSP + 0xa0],XMM0
MOV RDX,qword ptr [RAX + 0x28]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RSP + 0xa8],XMM0
CMP dword ptr [RAX + 0x34],0x0
JZ 0x0015a655
MOV RDX,qword ptr [RAX + 0x38]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RSP + 0xb0],XMM0
CMP dword ptr [RAX + 0x44],0x0
JZ 0x0015a51a
MOV RDX,qword ptr [RAX + 0x48]
PXOR XMM0,XMM0
CVTSS2SD XMM0,dword ptr [RBP + RDX*0x4]
MOVSD qword ptr [RSP + 0xb8],XMM0
MOV dword ptr [RSP + 0x78],0x4
JMP 0x0015a51a
MOV RAX,qword ptr [RSP + 0x10]
ADD RAX,qword ptr [R15 + 0x20]
MOVSD XMM0,qword ptr [RAX]
ADDSD XMM0,qword ptr [0x003f9608]
MOVSD qword ptr [RAX],XMM0
JMP 0x0015a54e
LEA RSI,[RAX + 0x1]
MOV ECX,0x0
JMP 0x0015a140
MOV RAX,qword ptr [RSP + 0xc8]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x0015a6d4
ADD RSP,0xd8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CALL 0x0014c5c0
(translation_unit "void FUN_0015a0f0(undefined8 *param_1)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0015a0f0(undefined8 *param_1)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0015a0f0(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auVar6 [16];" type_identifier (array_declarator "auVar6 [16]" identifier [ number_literal ]) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "double *pdVar12;" primitive_type (pointer_declarator "*pdVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_e8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_b8 [4];" type_identifier (array_declarator "local_b8 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "double local_60;" primitive_type identifier ;) (declaration "double local_58;" primitive_type identifier ;) (declaration "double local_50;" primitive_type identifier ;) (declaration "double local_48;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = omp_get_num_threads();" (assignment_expression "iVar7 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = omp_get_thread_num();" (assignment_expression "iVar8 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "auVar6._8_8_ = 0;" (assignment_expression "auVar6._8_8_ = 0" (field_expression "auVar6._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar6._0_8_ = SUB168(SEXT816(4),8);" (assignment_expression "auVar6._0_8_ = SUB168(SEXT816(4),8)" (field_expression "auVar6._0_8_" identifier . field_identifier) = (call_expression "SUB168(SEXT816(4),8)" identifier (argument_list "(SEXT816(4),8)" ( (call_expression "SEXT816(4)" identifier (argument_list "(4)" ( number_literal ))) , number_literal )))) ;) (expression_statement "auVar6 = auVar6 << 0x40 | ZEXT816(4);" (assignment_expression "auVar6 = auVar6 << 0x40 | ZEXT816(4)" identifier = (binary_expression "auVar6 << 0x40 | ZEXT816(4)" (binary_expression "auVar6 << 0x40" identifier << number_literal) | (call_expression "ZEXT816(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);" (assignment_expression "lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0)" identifier = (call_expression "SUB168(auVar6 / SEXT816((long)iVar7),0)" identifier (argument_list "(auVar6 / SEXT816((long)iVar7),0)" ( (binary_expression "auVar6 / SEXT816((long)iVar7)" identifier / (call_expression "SEXT816((long)iVar7)" identifier (argument_list "((long)iVar7)" ( (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) , number_literal )))) ;) (expression_statement "local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);" (assignment_expression "local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0)" identifier = (call_expression "SUB168(auVar6 % SEXT816((long)iVar7),0)" identifier (argument_list "(auVar6 % SEXT816((long)iVar7),0)" ( (binary_expression "auVar6 % SEXT816((long)iVar7)" identifier % (call_expression "SEXT816((long)iVar7)" identifier (argument_list "((long)iVar7)" ( (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) , number_literal )))) ;) (if_statement "if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }" if (parenthesized_expression "(iVar8 < local_e8)" ( (binary_expression "iVar8 < local_e8" identifier < identifier) )) (compound_statement "{\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }" { (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) })) (expression_statement "local_e8 = iVar8 * lVar9 + local_e8;" (assignment_expression "local_e8 = iVar8 * lVar9 + local_e8" identifier = (binary_expression "iVar8 * lVar9 + local_e8" (binary_expression "iVar8 * lVar9" identifier * identifier) + identifier)) ;) (expression_statement "lVar9 = lVar9 + local_e8;" (assignment_expression "lVar9 = lVar9 + local_e8" identifier = (binary_expression "lVar9 + local_e8" identifier + identifier)) ;) (if_statement "if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }" if (parenthesized_expression "(local_e8 < lVar9)" ( (binary_expression "local_e8 < lVar9" identifier < identifier) )) (compound_statement "{\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }" { (expression_statement "lVar1 = param_1[3];" (assignment_expression "lVar1 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[1];" (assignment_expression "uVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = (undefined4 *)*param_1;" (assignment_expression "puVar4 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "lVar15 = local_e8 * 0x58;" (assignment_expression "lVar15 = local_e8 * 0x58" identifier = (binary_expression "local_e8 * 0x58" identifier * number_literal)) ;) (do_statement "do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);" do (compound_statement "{\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    }" { (expression_statement "*(undefined8 *)(param_1[4] + local_e8 * 8) = 0;" (assignment_expression "*(undefined8 *)(param_1[4] + local_e8 * 8) = 0" (pointer_expression "*(undefined8 *)(param_1[4] + local_e8 * 8)" * (cast_expression "(undefined8 *)(param_1[4] + local_e8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[4] + local_e8 * 8)" ( (binary_expression "param_1[4] + local_e8 * 8" (subscript_expression "param_1[4]" identifier [ number_literal ]) + (binary_expression "local_e8 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[2] = 0;" (assignment_expression "local_b8[2] = 0" (subscript_expression "local_b8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[3] = 0;" (assignment_expression "local_b8[3] = 0" (subscript_expression "local_b8[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" if (parenthesized_expression "(local_e8 == 2)" ( (binary_expression "local_e8 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }" { (labeled_statement "LAB_0015a297:\n        local_b8[1] = 0;" statement_identifier : (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2)" identifier (argument_list "(uVar3,0,0,1,1,uVar2)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier ))) ;) (expression_statement "local_b8[1] = 1;" (assignment_expression "local_b8[1] = 1" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" else (if_statement "if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" if (parenthesized_expression "(local_e8 != 3)" ( (binary_expression "local_e8 != 3" identifier != number_literal) )) (compound_statement "{\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" { (if_statement "if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }" if (parenthesized_expression "(local_e8 != 1)" ( (binary_expression "local_e8 != 1" identifier != number_literal) )) (compound_statement "{\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }" { (expression_statement "GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" identifier (argument_list "(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" ( identifier , number_literal , (binary_expression "*(long *)(puVar4 + 10) + -1" (pointer_expression "*(long *)(puVar4 + 10)" * (cast_expression "(long *)(puVar4 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[0] = (ulong)(local_e8 != 1);" (assignment_expression "local_b8[0] = (ulong)(local_e8 != 1)" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = (call_expression "(ulong)(local_e8 != 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_e8 != 1)" ( (binary_expression "local_e8 != 1" identifier != number_literal) )))) ;) (expression_statement "GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2)" identifier (argument_list "(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2)" ( identifier , (binary_expression "*(long *)(puVar4 + 8) + -1" (pointer_expression "*(long *)(puVar4 + 8)" * (cast_expression "(long *)(puVar4 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal , identifier ))) ;) (expression_statement "local_b8[0] = 1;" (assignment_expression "local_b8[0] = 1" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0015a297;" goto statement_identifier ;) })))) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);" (assignment_expression "lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" identifier = (call_expression "GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" identifier (argument_list "(uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" ( identifier , (binary_expression "*(long *)(puVar4 + 8) + -1" (pointer_expression "*(long *)(puVar4 + 8)" * (cast_expression "(long *)(puVar4 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(long *)(puVar4 + 10) + -1" (pointer_expression "*(long *)(puVar4 + 10)" * (cast_expression "(long *)(puVar4 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier )))) ;) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[1] = 1;" (assignment_expression "local_b8[1] = 1" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)(lVar15 + param_1[5]);" (assignment_expression "puVar13 = (undefined4 *)(lVar15 + param_1[5])" identifier = (cast_expression "(undefined4 *)(lVar15 + param_1[5])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + param_1[5])" ( (binary_expression "lVar15 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) )))) ;) (expression_statement "ResetMagickMemory(puVar13,0,0x58);" (call_expression "ResetMagickMemory(puVar13,0,0x58)" identifier (argument_list "(puVar13,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[1] = 0x17;" (assignment_expression "puVar13[1] = 0x17" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 *)(puVar13 + 6) = 0x10;" (assignment_expression "*(undefined8 *)(puVar13 + 6) = 0x10" (pointer_expression "*(undefined8 *)(puVar13 + 6)" * (cast_expression "(undefined8 *)(puVar13 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 6)" ( (binary_expression "puVar13 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar13[2] = 0;" (assignment_expression "puVar13[2] = 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(double *)(puVar13 + 0x12) = DAT_003f95f8;" (assignment_expression "*(double *)(puVar13 + 0x12) = DAT_003f95f8" (pointer_expression "*(double *)(puVar13 + 0x12)" * (cast_expression "(double *)(puVar13 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x12)" ( (binary_expression "puVar13 + 0x12" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }" { (expression_statement "*puVar13 = *puVar4;" (assignment_expression "*puVar13 = *puVar4" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar13[1] = puVar4[1];" (assignment_expression "puVar13[1] = puVar4[1]" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);" (assignment_expression "*(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6)" (pointer_expression "*(undefined8 *)(puVar13 + 4)" * (cast_expression "(undefined8 *)(puVar13 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 4)" ( (binary_expression "puVar13 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar4 + 0xa6)" * (cast_expression "(undefined8 *)(puVar4 + 0xa6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xa6)" ( (binary_expression "puVar4 + 0xa6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);" (assignment_expression "*(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc)" (pointer_expression "*(undefined8 *)(puVar13 + 6)" * (cast_expression "(undefined8 *)(puVar13 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 6)" ( (binary_expression "puVar13 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar4 + 0xc)" * (cast_expression "(undefined8 *)(puVar4 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xc)" ( (binary_expression "puVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar13[2] = puVar4[0xcf];" (assignment_expression "puVar13[2] = puVar4[0xcf]" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (subscript_expression "puVar4[0xcf]" identifier [ number_literal ])) ;) (if_statement "if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }" { (expression_statement "lVar14 = *(long *)(puVar4 + 0xd8);" (assignment_expression "lVar14 = *(long *)(puVar4 + 0xd8)" identifier = (pointer_expression "*(long *)(puVar4 + 0xd8)" * (cast_expression "(long *)(puVar4 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xd8)" ( (binary_expression "puVar4 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);" (assignment_expression "*(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" (pointer_expression "*(double *)(puVar13 + 10)" * (cast_expression "(double *)(puVar13 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 10)" ( (binary_expression "puVar13 + 10" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 8) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 8) * 4" identifier + (binary_expression "*(long *)(lVar14 + 8) * 4" (pointer_expression "*(long *)(lVar14 + 8)" * (cast_expression "(long *)(lVar14 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 8)" ( (binary_expression "lVar14 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "*(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);" (assignment_expression "*(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (pointer_expression "*(double *)(puVar13 + 0xc)" * (cast_expression "(double *)(puVar13 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xc)" ( (binary_expression "puVar13 + 0xc" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x18) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x18) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x18) * 4" (pointer_expression "*(long *)(lVar14 + 0x18)" * (cast_expression "(long *)(lVar14 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x18)" ( (binary_expression "lVar14 + 0x18" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "*(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);" (assignment_expression "*(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (pointer_expression "*(double *)(puVar13 + 0xe)" * (cast_expression "(double *)(puVar13 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xe)" ( (binary_expression "puVar13 + 0xe" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x28) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x28) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x28) * 4" (pointer_expression "*(long *)(lVar14 + 0x28)" * (cast_expression "(long *)(lVar14 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }" if (parenthesized_expression "(*(int *)(lVar14 + 0x34) != 0)" ( (binary_expression "*(int *)(lVar14 + 0x34) != 0" (pointer_expression "*(int *)(lVar14 + 0x34)" * (cast_expression "(int *)(lVar14 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x34)" ( (binary_expression "lVar14 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }" { (expression_statement "*(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);" (assignment_expression "*(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (pointer_expression "*(double *)(puVar13 + 0x10)" * (cast_expression "(double *)(puVar13 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x38) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x38) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x38) * 4" (pointer_expression "*(long *)(lVar14 + 0x38)" * (cast_expression "(long *)(lVar14 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x38)" ( (binary_expression "lVar14 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }" if (parenthesized_expression "(*(int *)(lVar14 + 0x44) != 0)" ( (binary_expression "*(int *)(lVar14 + 0x44) != 0" (pointer_expression "*(int *)(lVar14 + 0x44)" * (cast_expression "(int *)(lVar14 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x44)" ( (binary_expression "lVar14 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }" { (expression_statement "*(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);" (assignment_expression "*(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (pointer_expression "*(double *)(puVar13 + 0x12)" * (cast_expression "(double *)(puVar13 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x12)" ( (binary_expression "puVar13 + 0x12" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x48) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x48) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x48) * 4" (pointer_expression "*(long *)(lVar14 + 0x48)" * (cast_expression "(long *)(lVar14 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x48)" ( (binary_expression "lVar14 + 0x48" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "puVar13[2] = 4;" (assignment_expression "puVar13[2] = 4" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }" if (parenthesized_expression "(*(int *)(lVar14 + 0x54) != 0)" ( (binary_expression "*(int *)(lVar14 + 0x54) != 0" (pointer_expression "*(int *)(lVar14 + 0x54)" * (cast_expression "(int *)(lVar14 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x54)" ( (binary_expression "lVar14 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }" { (expression_statement "*(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);" (assignment_expression "*(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (pointer_expression "*(double *)(puVar13 + 0x14)" * (cast_expression "(double *)(puVar13 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x14)" ( (binary_expression "puVar13 + 0x14" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x58) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x58) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x58) * 4" (pointer_expression "*(long *)(lVar14 + 0x58)" * (cast_expression "(long *)(lVar14 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x58)" ( (binary_expression "lVar14 + 0x58" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (if_statement "if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }" { (expression_statement "QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);" (call_expression "QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2)" identifier (argument_list "(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2)" ( identifier , number_literal , (binary_expression "lVar15 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) , identifier ))) ;) })) (expression_statement "GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);" (call_expression "GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8)" identifier (argument_list "(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8)" ( (pointer_expression "*(undefined8 *)(puVar4 + 8)" * (cast_expression "(undefined8 *)(puVar4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(puVar4 + 10)" * (cast_expression "(undefined8 *)(puVar4 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);" (assignment_expression "puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2)" identifier = (cast_expression "(undefined4 *)CropImage(puVar4,local_b8,uVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CropImage(puVar4,local_b8,uVar2)" identifier (argument_list "(puVar4,local_b8,uVar2)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }" { (expression_statement "uVar11 = AcquireVirtualCacheView(puVar13,uVar2);" (assignment_expression "uVar11 = AcquireVirtualCacheView(puVar13,uVar2)" identifier = (call_expression "AcquireVirtualCacheView(puVar13,uVar2)" identifier (argument_list "(puVar13,uVar2)" ( identifier , identifier )))) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }" if (parenthesized_expression "(0 < *(long *)(puVar13 + 10))" ( (binary_expression "0 < *(long *)(puVar13 + 10)" number_literal < (pointer_expression "*(long *)(puVar13 + 10)" * (cast_expression "(long *)(puVar13 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 10)" ( (binary_expression "puVar13 + 10" identifier + number_literal) ))))) )) (compound_statement "{\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }" { (do_statement "do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));" do (compound_statement "{\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          }" { (expression_statement "lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);" (assignment_expression "lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" identifier = (call_expression "GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" identifier (argument_list "(uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined8 *)(puVar13 + 8)" * (cast_expression "(undefined8 *)(puVar13 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = 0;" (assignment_expression "lVar14 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }" if (parenthesized_expression "(0 < *(long *)(puVar13 + 8))" ( (binary_expression "0 < *(long *)(puVar13 + 8)" number_literal < (pointer_expression "*(long *)(puVar13 + 8)" * (cast_expression "(long *)(puVar13 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }" { (do_statement "do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));" do (compound_statement "{\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              }" { (expression_statement "ResetMagickMemory(&local_98,0,0x58);" (call_expression "ResetMagickMemory(&local_98,0,0x58)" identifier (argument_list "(&local_98,0,0x58)" ( (pointer_expression "&local_98" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_50 = DAT_003f95f8;" (assignment_expression "local_50 = DAT_003f95f8" identifier = identifier) ;) (expression_statement "local_98 = *puVar13;" (assignment_expression "local_98 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "local_94 = puVar13[1];" (assignment_expression "local_94 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "local_88 = *(undefined8 *)(puVar13 + 0xa6);" (assignment_expression "local_88 = *(undefined8 *)(puVar13 + 0xa6)" identifier = (pointer_expression "*(undefined8 *)(puVar13 + 0xa6)" * (cast_expression "(undefined8 *)(puVar13 + 0xa6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xa6)" ( (binary_expression "puVar13 + 0xa6" identifier + number_literal) ))))) ;) (expression_statement "local_80 = *(undefined8 *)(puVar13 + 0xc);" (assignment_expression "local_80 = *(undefined8 *)(puVar13 + 0xc)" identifier = (pointer_expression "*(undefined8 *)(puVar13 + 0xc)" * (cast_expression "(undefined8 *)(puVar13 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xc)" ( (binary_expression "puVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_90 = puVar13[0xcf];" (assignment_expression "local_90 = puVar13[0xcf]" identifier = (subscript_expression "puVar13[0xcf]" identifier [ number_literal ])) ;) (if_statement "if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }" { (expression_statement "lVar5 = *(long *)(puVar13 + 0xd8);" (assignment_expression "lVar5 = *(long *)(puVar13 + 0xd8)" identifier = (pointer_expression "*(long *)(puVar13 + 0xd8)" * (cast_expression "(long *)(puVar13 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xd8)" ( (binary_expression "puVar13 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);" (assignment_expression "local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 8) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 8) * 4" identifier + (binary_expression "*(long *)(lVar5 + 8) * 4" (pointer_expression "*(long *)(lVar5 + 8)" * (cast_expression "(long *)(lVar5 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);" (assignment_expression "local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x18) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x18) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x18) * 4" (pointer_expression "*(long *)(lVar5 + 0x18)" * (cast_expression "(long *)(lVar5 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);" (assignment_expression "local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x28) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x28) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x28) * 4" (pointer_expression "*(long *)(lVar5 + 0x28)" * (cast_expression "(long *)(lVar5 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }" if (parenthesized_expression "(*(int *)(lVar5 + 0x34) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x34) != 0" (pointer_expression "*(int *)(lVar5 + 0x34)" * (cast_expression "(int *)(lVar5 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x34)" ( (binary_expression "lVar5 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }" { (expression_statement "local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);" (assignment_expression "local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x38) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x38) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x38) * 4" (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }" if (parenthesized_expression "(*(int *)(lVar5 + 0x44) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x44) != 0" (pointer_expression "*(int *)(lVar5 + 0x44)" * (cast_expression "(int *)(lVar5 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x44)" ( (binary_expression "lVar5 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }" { (expression_statement "local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);" (assignment_expression "local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x48) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x48) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x48) * 4" (pointer_expression "*(long *)(lVar5 + 0x48)" * (cast_expression "(long *)(lVar5 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x48)" ( (binary_expression "lVar5 + 0x48" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_90 = 4;" (assignment_expression "local_90 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }" if (parenthesized_expression "(*(int *)(lVar5 + 0x54) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x54) != 0" (pointer_expression "*(int *)(lVar5 + 0x54)" * (cast_expression "(int *)(lVar5 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x54)" ( (binary_expression "lVar5 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }" { (expression_statement "local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);" (assignment_expression "local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x58) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x58) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x58) * 4" (pointer_expression "*(long *)(lVar5 + 0x58)" * (cast_expression "(long *)(lVar5 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x58)" ( (binary_expression "lVar5 + 0x58" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);" (assignment_expression "iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5])" identifier = (call_expression "IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5])" identifier (argument_list "(&local_98,lVar15 + param_1[5])" ( (pointer_expression "&local_98" & identifier) , (binary_expression "lVar15 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }" { (expression_statement "pdVar12 = (double *)(local_e8 * 8 + param_1[4]);" (assignment_expression "pdVar12 = (double *)(local_e8 * 8 + param_1[4])" identifier = (cast_expression "(double *)(local_e8 * 8 + param_1[4])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e8 * 8 + param_1[4])" ( (binary_expression "local_e8 * 8 + param_1[4]" (binary_expression "local_e8 * 8" identifier * number_literal) + (subscript_expression "param_1[4]" identifier [ number_literal ])) )))) ;) (expression_statement "*pdVar12 = *pdVar12 + DAT_003f9608;" (assignment_expression "*pdVar12 = *pdVar12 + DAT_003f9608" (pointer_expression "*pdVar12" * identifier) = (binary_expression "*pdVar12 + DAT_003f9608" (pointer_expression "*pdVar12" * identifier) + identifier)) ;) })) (expression_statement "lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;" (assignment_expression "lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4" identifier = (binary_expression "lVar10 + *(long *)(puVar13 + 0xd0) * 4" identifier + (binary_expression "*(long *)(puVar13 + 0xd0) * 4" (pointer_expression "*(long *)(puVar13 + 0xd0)" * (cast_expression "(long *)(puVar13 + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xd0)" ( (binary_expression "puVar13 + 0xd0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "lVar14 = lVar14 + 1;" (assignment_expression "lVar14 = lVar14 + 1" identifier = (binary_expression "lVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar14 < *(long *)(puVar13 + 8))" ( (binary_expression "lVar14 < *(long *)(puVar13 + 8)" identifier < (pointer_expression "*(long *)(puVar13 + 8)" * (cast_expression "(long *)(puVar13 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) )) ;) })) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_100 < *(long *)(puVar13 + 10))" ( (binary_expression "local_100 < *(long *)(puVar13 + 10)" identifier < (pointer_expression "*(long *)(puVar13 + 10)" * (cast_expression "(long *)(puVar13 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 10)" ( (binary_expression "puVar13 + 10" identifier + number_literal) ))))) )) ;) })) (expression_statement "DestroyCacheView(uVar11);" (call_expression "DestroyCacheView(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "DestroyImage(puVar13);" (call_expression "DestroyImage(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (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 "lVar15 = lVar15 + 0x58;" (assignment_expression "lVar15 = lVar15 + 0x58" identifier = (binary_expression "lVar15 + 0x58" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != local_e8)" ( (binary_expression "lVar9 != local_e8" identifier != identifier) )) ;) })) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n/* DWARF original prototype: void GetEdgeBackgroundColor._omp_fn.1(anon_struct_48_6_a27eb3c1 *\n   param_0) */\n\nvoid __thiscall GetEdgeBackgroundColor__omp_fn_1(void *this)\n\n{\n  char *name;\n  ExceptionInfo *exception;\n  CacheView *cache_view;\n  Image *image;\n  PixelChannelMap *pPVar1;\n  undefined1 auVar2 [16];\n  int iVar3;\n  int iVar4;\n  MagickBooleanType MVar5;\n  long lVar6;\n  Quantum *pQVar7;\n  Image *image_00;\n  CacheView *cache_view_00;\n  double *pdVar8;\n  ClassType *memory;\n  long lVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  RectangleInfo local_b8;\n  PixelInfo local_98;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = omp_get_num_threads();\n  iVar4 = omp_get_thread_num();\n  auVar2._8_8_ = 0;\n  auVar2._0_8_ = SUB168(SEXT816(4),8);\n  auVar2 = auVar2 << 0x40 | ZEXT816(4);\n  lVar6 = SUB168(auVar2 / SEXT816((long)iVar3),0);\n  local_e8 = SUB168(auVar2 % SEXT816((long)iVar3),0);\n  if (iVar4 < local_e8) {\n    lVar6 = lVar6 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar4 * lVar6 + local_e8;\n  lVar6 = lVar6 + local_e8;\n  if (local_e8 < lVar6) {\n    name = *(char **)((long)this + 0x18);\n    exception = *(ExceptionInfo **)((long)this + 0x10);\n    cache_view = *(CacheView **)((long)this + 8);\n                    /* WARNING: Load size is inaccurate */\n    image = *this;\n    lVar10 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    } while (lVar6 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __thiscall GetEdgeBackgroundColor__omp_fn_1(void *this)\n\n{\n  char *name;\n  ExceptionInfo *exception;\n  CacheView *cache_view;\n  Image *image;\n  PixelChannelMap *pPVar1;\n  undefined1 auVar2 [16];\n  int iVar3;\n  int iVar4;\n  MagickBooleanType MVar5;\n  long lVar6;\n  Quantum *pQVar7;\n  Image *image_00;\n  CacheView *cache_view_00;\n  double *pdVar8;\n  ClassType *memory;\n  long lVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  RectangleInfo local_b8;\n  PixelInfo local_98;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = omp_get_num_threads();\n  iVar4 = omp_get_thread_num();\n  auVar2._8_8_ = 0;\n  auVar2._0_8_ = SUB168(SEXT816(4),8);\n  auVar2 = auVar2 << 0x40 | ZEXT816(4);\n  lVar6 = SUB168(auVar2 / SEXT816((long)iVar3),0);\n  local_e8 = SUB168(auVar2 % SEXT816((long)iVar3),0);\n  if (iVar4 < local_e8) {\n    lVar6 = lVar6 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar4 * lVar6 + local_e8;\n  lVar6 = lVar6 + local_e8;\n  if (local_e8 < lVar6) {\n    name = *(char **)((long)this + 0x18);\n    exception = *(ExceptionInfo **)((long)this + 0x10);\n    cache_view = *(CacheView **)((long)this + 8);\n                    /* WARNING: Load size is inaccurate */\n    image = *this;\n    lVar10 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    } while (lVar6 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "GetEdgeBackgroundColor__omp_fn_1(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  char *name;\n  ExceptionInfo *exception;\n  CacheView *cache_view;\n  Image *image;\n  PixelChannelMap *pPVar1;\n  undefined1 auVar2 [16];\n  int iVar3;\n  int iVar4;\n  MagickBooleanType MVar5;\n  long lVar6;\n  Quantum *pQVar7;\n  Image *image_00;\n  CacheView *cache_view_00;\n  double *pdVar8;\n  ClassType *memory;\n  long lVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  RectangleInfo local_b8;\n  PixelInfo local_98;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = omp_get_num_threads();\n  iVar4 = omp_get_thread_num();\n  auVar2._8_8_ = 0;\n  auVar2._0_8_ = SUB168(SEXT816(4),8);\n  auVar2 = auVar2 << 0x40 | ZEXT816(4);\n  lVar6 = SUB168(auVar2 / SEXT816((long)iVar3),0);\n  local_e8 = SUB168(auVar2 % SEXT816((long)iVar3),0);\n  if (iVar4 < local_e8) {\n    lVar6 = lVar6 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar4 * lVar6 + local_e8;\n  lVar6 = lVar6 + local_e8;\n  if (local_e8 < lVar6) {\n    name = *(char **)((long)this + 0x18);\n    exception = *(ExceptionInfo **)((long)this + 0x10);\n    cache_view = *(CacheView **)((long)this + 8);\n                    /* WARNING: Load size is inaccurate */\n    image = *this;\n    lVar10 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    } while (lVar6 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "ExceptionInfo *exception;" type_identifier (pointer_declarator "*exception" * identifier) ;) (declaration "CacheView *cache_view;" type_identifier (pointer_declarator "*cache_view" * identifier) ;) (declaration "Image *image;" type_identifier (pointer_declarator "*image" * identifier) ;) (declaration "PixelChannelMap *pPVar1;" type_identifier (pointer_declarator "*pPVar1" * identifier) ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "MagickBooleanType MVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "Quantum *pQVar7;" type_identifier (pointer_declarator "*pQVar7" * identifier) ;) (declaration "Image *image_00;" type_identifier (pointer_declarator "*image_00" * identifier) ;) (declaration "CacheView *cache_view_00;" type_identifier (pointer_declarator "*cache_view_00" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "ClassType *memory;" type_identifier (pointer_declarator "*memory" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_e8;" (sized_type_specifier "long" long) identifier ;) (declaration "RectangleInfo local_b8;" type_identifier identifier ;) (declaration "PixelInfo local_98;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = omp_get_num_threads();" (assignment_expression "iVar3 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = omp_get_thread_num();" (assignment_expression "iVar4 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "auVar2._8_8_ = 0;" (assignment_expression "auVar2._8_8_ = 0" (field_expression "auVar2._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar2._0_8_ = SUB168(SEXT816(4),8);" (assignment_expression "auVar2._0_8_ = SUB168(SEXT816(4),8)" (field_expression "auVar2._0_8_" identifier . field_identifier) = (call_expression "SUB168(SEXT816(4),8)" identifier (argument_list "(SEXT816(4),8)" ( (call_expression "SEXT816(4)" identifier (argument_list "(4)" ( number_literal ))) , number_literal )))) ;) (expression_statement "auVar2 = auVar2 << 0x40 | ZEXT816(4);" (assignment_expression "auVar2 = auVar2 << 0x40 | ZEXT816(4)" identifier = (binary_expression "auVar2 << 0x40 | ZEXT816(4)" (binary_expression "auVar2 << 0x40" identifier << number_literal) | (call_expression "ZEXT816(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "lVar6 = SUB168(auVar2 / SEXT816((long)iVar3),0);" (assignment_expression "lVar6 = SUB168(auVar2 / SEXT816((long)iVar3),0)" identifier = (call_expression "SUB168(auVar2 / SEXT816((long)iVar3),0)" identifier (argument_list "(auVar2 / SEXT816((long)iVar3),0)" ( (binary_expression "auVar2 / SEXT816((long)iVar3)" identifier / (call_expression "SEXT816((long)iVar3)" identifier (argument_list "((long)iVar3)" ( (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) , number_literal )))) ;) (expression_statement "local_e8 = SUB168(auVar2 % SEXT816((long)iVar3),0);" (assignment_expression "local_e8 = SUB168(auVar2 % SEXT816((long)iVar3),0)" identifier = (call_expression "SUB168(auVar2 % SEXT816((long)iVar3),0)" identifier (argument_list "(auVar2 % SEXT816((long)iVar3),0)" ( (binary_expression "auVar2 % SEXT816((long)iVar3)" identifier % (call_expression "SEXT816((long)iVar3)" identifier (argument_list "((long)iVar3)" ( (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) , number_literal )))) ;) (if_statement "if (iVar4 < local_e8) {\n    lVar6 = lVar6 + 1;\n    local_e8 = 0;\n  }" if (parenthesized_expression "(iVar4 < local_e8)" ( (binary_expression "iVar4 < local_e8" identifier < identifier) )) (compound_statement "{\n    lVar6 = lVar6 + 1;\n    local_e8 = 0;\n  }" { (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" identifier = (binary_expression "lVar6 + 1" identifier + number_literal)) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) })) (expression_statement "local_e8 = iVar4 * lVar6 + local_e8;" (assignment_expression "local_e8 = iVar4 * lVar6 + local_e8" identifier = (binary_expression "iVar4 * lVar6 + local_e8" (binary_expression "iVar4 * lVar6" identifier * identifier) + identifier)) ;) (expression_statement "lVar6 = lVar6 + local_e8;" (assignment_expression "lVar6 = lVar6 + local_e8" identifier = (binary_expression "lVar6 + local_e8" identifier + identifier)) ;) (if_statement "if (local_e8 < lVar6) {\n    name = *(char **)((long)this + 0x18);\n    exception = *(ExceptionInfo **)((long)this + 0x10);\n    cache_view = *(CacheView **)((long)this + 8);\n                    /* WARNING: Load size is inaccurate */\n    image = *this;\n    lVar10 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    } while (lVar6 != local_e8);\n  }" if (parenthesized_expression "(local_e8 < lVar6)" ( (binary_expression "local_e8 < lVar6" identifier < identifier) )) (compound_statement "{\n    name = *(char **)((long)this + 0x18);\n    exception = *(ExceptionInfo **)((long)this + 0x10);\n    cache_view = *(CacheView **)((long)this + 8);\n                    /* WARNING: Load size is inaccurate */\n    image = *this;\n    lVar10 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    } while (lVar6 != local_e8);\n  }" { (expression_statement "name = *(char **)((long)this + 0x18);" (assignment_expression "name = *(char **)((long)this + 0x18)" identifier = (pointer_expression "*(char **)((long)this + 0x18)" * (cast_expression "(char **)((long)this + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)this + 0x18)" ( (binary_expression "(long)this + 0x18" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "exception = *(ExceptionInfo **)((long)this + 0x10);" (assignment_expression "exception = *(ExceptionInfo **)((long)this + 0x10)" identifier = (pointer_expression "*(ExceptionInfo **)((long)this + 0x10)" * (cast_expression "(ExceptionInfo **)((long)this + 0x10)" ( (type_descriptor "ExceptionInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)this + 0x10)" ( (binary_expression "(long)this + 0x10" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "cache_view = *(CacheView **)((long)this + 8);" (assignment_expression "cache_view = *(CacheView **)((long)this + 8)" identifier = (pointer_expression "*(CacheView **)((long)this + 8)" * (cast_expression "(CacheView **)((long)this + 8)" ( (type_descriptor "CacheView **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)this + 8)" ( (binary_expression "(long)this + 8" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) comment (expression_statement "image = *this;" (assignment_expression "image = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "lVar10 = local_e8 * 0x58;" (assignment_expression "lVar10 = local_e8 * 0x58" identifier = (binary_expression "local_e8 * 0x58" identifier * number_literal)) ;) (do_statement "do {\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    } while (lVar6 != local_e8);" do (compound_statement "{\n      *(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;\n      local_b8.width = 0;\n      local_b8.height = 0;\n      local_b8.x = 0;\n      local_b8.y = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }\n      local_b8.width = 0;\n      pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);\n      local_b8.width = 0;\n      local_b8.height = 1;\n      memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));\n      ResetMagickMemory(memory,0,0x58);\n      *memory = DirectClass;\n      memory[1] = 0x17;\n      memory[6] = 0x10;\n      memory[7] = UndefinedClass;\n      memory[2] = UndefinedClass;\n      *(double *)(memory + 0x12) = DAT_003f95f8;\n      if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }\n      if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }\n      GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);\n      image_00 = CropImage(image,&local_b8,exception);\n      if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }\n      local_e8 = local_e8 + 1;\n      lVar10 = lVar10 + 0x58;\n    }" { (expression_statement "*(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0;" (assignment_expression "*(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8) = 0" (pointer_expression "*(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8)" * (cast_expression "(undefined8 *)(*(long *)((long)this + 0x20) + local_e8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)this + 0x20) + local_e8 * 8)" ( (binary_expression "*(long *)((long)this + 0x20) + local_e8 * 8" (pointer_expression "*(long *)((long)this + 0x20)" * (cast_expression "(long *)((long)this + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this + 0x20)" ( (binary_expression "(long)this + 0x20" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + (binary_expression "local_e8 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "local_b8.width = 0;" (assignment_expression "local_b8.width = 0" (field_expression "local_b8.width" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8.height = 0;" (assignment_expression "local_b8.height = 0" (field_expression "local_b8.height" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8.x = 0;" (assignment_expression "local_b8.x = 0" (field_expression "local_b8.x" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8.y = 0;" (assignment_expression "local_b8.y = 0" (field_expression "local_b8.y" identifier . field_identifier) = number_literal) ;) (if_statement "if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }" if (parenthesized_expression "(local_e8 == 2)" ( (binary_expression "local_e8 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0015a297:\n        local_b8.height = 0;\n        GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);\n        local_b8.height = 1;\n      }" { (labeled_statement "LAB_0015a297:\n        local_b8.height = 0;" statement_identifier : (expression_statement "local_b8.height = 0;" (assignment_expression "local_b8.height = 0" (field_expression "local_b8.height" identifier . field_identifier) = number_literal) ;)) (expression_statement "GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception);" (call_expression "GetCacheViewVirtualPixels(cache_view,0,0,1,1,exception)" identifier (argument_list "(cache_view,0,0,1,1,exception)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier ))) ;) (expression_statement "local_b8.height = 1;" (assignment_expression "local_b8.height = 1" (field_expression "local_b8.height" identifier . field_identifier) = number_literal) ;) }) (else_clause "else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }" else (if_statement "if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }" if (parenthesized_expression "(local_e8 != 3)" ( (binary_expression "local_e8 != 3" identifier != number_literal) )) (compound_statement "{\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }\n        local_b8.height = 0;\n        local_b8.width = (size_t)(local_e8 != 1);\n        GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);\n        local_b8.width = 1;\n        goto LAB_0015a297;\n      }" { (if_statement "if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }" if (parenthesized_expression "(local_e8 != 1)" ( (binary_expression "local_e8 != 1" identifier != number_literal) )) (compound_statement "{\n          GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);\n        }" { (expression_statement "GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception);" (call_expression "GetCacheViewVirtualPixels(cache_view,0,image->rows - 1,1,1,exception)" identifier (argument_list "(cache_view,0,image->rows - 1,1,1,exception)" ( identifier , number_literal , (binary_expression "image->rows - 1" (field_expression "image->rows" identifier -> field_identifier) - number_literal) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "local_b8.height = 0;" (assignment_expression "local_b8.height = 0" (field_expression "local_b8.height" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8.width = (size_t)(local_e8 != 1);" (assignment_expression "local_b8.width = (size_t)(local_e8 != 1)" (field_expression "local_b8.width" identifier . field_identifier) = (cast_expression "(size_t)(local_e8 != 1)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(local_e8 != 1)" ( (binary_expression "local_e8 != 1" identifier != number_literal) )))) ;) (expression_statement "GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception);" (call_expression "GetCacheViewVirtualPixels(cache_view,image->columns - 1,0,1,1,exception)" identifier (argument_list "(cache_view,image->columns - 1,0,1,1,exception)" ( identifier , (binary_expression "image->columns - 1" (field_expression "image->columns" identifier -> field_identifier) - number_literal) , number_literal , number_literal , number_literal , identifier ))) ;) (expression_statement "local_b8.width = 1;" (assignment_expression "local_b8.width = 1" (field_expression "local_b8.width" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0015a297;" goto statement_identifier ;) })))) (expression_statement "local_b8.width = 0;" (assignment_expression "local_b8.width = 0" (field_expression "local_b8.width" identifier . field_identifier) = number_literal) ;) (expression_statement "pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception);" (assignment_expression "pQVar7 = GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception)" identifier = (call_expression "GetCacheViewVirtualPixels\n                         (cache_view,image->columns - 1,image->rows - 1,1,1,exception)" identifier (argument_list "(cache_view,image->columns - 1,image->rows - 1,1,1,exception)" ( identifier , (binary_expression "image->columns - 1" (field_expression "image->columns" identifier -> field_identifier) - number_literal) , (binary_expression "image->rows - 1" (field_expression "image->rows" identifier -> field_identifier) - number_literal) , number_literal , number_literal , identifier )))) ;) (expression_statement "local_b8.width = 0;" (assignment_expression "local_b8.width = 0" (field_expression "local_b8.width" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8.height = 1;" (assignment_expression "local_b8.height = 1" (field_expression "local_b8.height" identifier . field_identifier) = number_literal) ;) (expression_statement "memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28));" (assignment_expression "memory = (ClassType *)(lVar10 + *(long *)((long)this + 0x28))" identifier = (cast_expression "(ClassType *)(lVar10 + *(long *)((long)this + 0x28))" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)((long)this + 0x28))" ( (binary_expression "lVar10 + *(long *)((long)this + 0x28)" identifier + (pointer_expression "*(long *)((long)this + 0x28)" * (cast_expression "(long *)((long)this + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this + 0x28)" ( (binary_expression "(long)this + 0x28" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )))) ;) (expression_statement "ResetMagickMemory(memory,0,0x58);" (call_expression "ResetMagickMemory(memory,0,0x58)" identifier (argument_list "(memory,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*memory = DirectClass;" (assignment_expression "*memory = DirectClass" (pointer_expression "*memory" * identifier) = identifier) ;) (expression_statement "memory[1] = 0x17;" (assignment_expression "memory[1] = 0x17" (subscript_expression "memory[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "memory[6] = 0x10;" (assignment_expression "memory[6] = 0x10" (subscript_expression "memory[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "memory[7] = UndefinedClass;" (assignment_expression "memory[7] = UndefinedClass" (subscript_expression "memory[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "memory[2] = UndefinedClass;" (assignment_expression "memory[2] = UndefinedClass" (subscript_expression "memory[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(double *)(memory + 0x12) = DAT_003f95f8;" (assignment_expression "*(double *)(memory + 0x12) = DAT_003f95f8" (pointer_expression "*(double *)(memory + 0x12)" * (cast_expression "(double *)(memory + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 0x12)" ( (binary_expression "memory + 0x12" identifier + number_literal) )))) = identifier) ;) (if_statement "if (image != (Image *)0x0) {\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }" if (parenthesized_expression "(image != (Image *)0x0)" ( (binary_expression "image != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *memory = image->storage_class;\n        memory[1] = image->colorspace;\n        *(double *)(memory + 4) = image->fuzz;\n        *(size_t *)(memory + 6) = image->depth;\n        memory[2] = image->alpha_trait;\n        if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }\n      }" { (expression_statement "*memory = image->storage_class;" (assignment_expression "*memory = image->storage_class" (pointer_expression "*memory" * identifier) = (field_expression "image->storage_class" identifier -> field_identifier)) ;) (expression_statement "memory[1] = image->colorspace;" (assignment_expression "memory[1] = image->colorspace" (subscript_expression "memory[1]" identifier [ number_literal ]) = (field_expression "image->colorspace" identifier -> field_identifier)) ;) (expression_statement "*(double *)(memory + 4) = image->fuzz;" (assignment_expression "*(double *)(memory + 4) = image->fuzz" (pointer_expression "*(double *)(memory + 4)" * (cast_expression "(double *)(memory + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 4)" ( (binary_expression "memory + 4" identifier + number_literal) )))) = (field_expression "image->fuzz" identifier -> field_identifier)) ;) (expression_statement "*(size_t *)(memory + 6) = image->depth;" (assignment_expression "*(size_t *)(memory + 6) = image->depth" (pointer_expression "*(size_t *)(memory + 6)" * (cast_expression "(size_t *)(memory + 6)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 6)" ( (binary_expression "memory + 6" identifier + number_literal) )))) = (field_expression "image->depth" identifier -> field_identifier)) ;) (expression_statement "memory[2] = image->alpha_trait;" (assignment_expression "memory[2] = image->alpha_trait" (subscript_expression "memory[2]" identifier [ number_literal ]) = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (pQVar7 != (Quantum *)0x0) {\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }" if (parenthesized_expression "(pQVar7 != (Quantum *)0x0)" ( (binary_expression "pQVar7 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pPVar1 = image->channel_map;\n          *(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];\n          *(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];\n          *(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];\n          if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }\n          if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }\n          if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }\n        }" { (expression_statement "pPVar1 = image->channel_map;" (assignment_expression "pPVar1 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "*(double *)(memory + 10) = (double)pQVar7[pPVar1->offset];" (assignment_expression "*(double *)(memory + 10) = (double)pQVar7[pPVar1->offset]" (pointer_expression "*(double *)(memory + 10)" * (cast_expression "(double *)(memory + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 10)" ( (binary_expression "memory + 10" identifier + number_literal) )))) = (cast_expression "(double)pQVar7[pPVar1->offset]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pQVar7[pPVar1->offset]" identifier [ (field_expression "pPVar1->offset" identifier -> field_identifier) ]))) ;) (expression_statement "*(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset];" (assignment_expression "*(double *)(memory + 0xc) = (double)pQVar7[pPVar1[1].offset]" (pointer_expression "*(double *)(memory + 0xc)" * (cast_expression "(double *)(memory + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 0xc)" ( (binary_expression "memory + 0xc" identifier + number_literal) )))) = (cast_expression "(double)pQVar7[pPVar1[1].offset]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pQVar7[pPVar1[1].offset]" identifier [ (field_expression "pPVar1[1].offset" (subscript_expression "pPVar1[1]" identifier [ number_literal ]) . field_identifier) ]))) ;) (expression_statement "*(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset];" (assignment_expression "*(double *)(memory + 0xe) = (double)pQVar7[pPVar1[2].offset]" (pointer_expression "*(double *)(memory + 0xe)" * (cast_expression "(double *)(memory + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 0xe)" ( (binary_expression "memory + 0xe" identifier + number_literal) )))) = (cast_expression "(double)pQVar7[pPVar1[2].offset]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pQVar7[pPVar1[2].offset]" identifier [ (field_expression "pPVar1[2].offset" (subscript_expression "pPVar1[2]" identifier [ number_literal ]) . field_identifier) ]))) ;) (if_statement "if (pPVar1[3].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }" if (parenthesized_expression "(pPVar1[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[3].traits != UndefinedPixelTrait" (field_expression "pPVar1[3].traits" (subscript_expression "pPVar1[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            *(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];\n          }" { (expression_statement "*(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset];" (assignment_expression "*(double *)(memory + 0x10) = (double)pQVar7[pPVar1[3].offset]" (pointer_expression "*(double *)(memory + 0x10)" * (cast_expression "(double *)(memory + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 0x10)" ( (binary_expression "memory + 0x10" identifier + number_literal) )))) = (cast_expression "(double)pQVar7[pPVar1[3].offset]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pQVar7[pPVar1[3].offset]" identifier [ (field_expression "pPVar1[3].offset" (subscript_expression "pPVar1[3]" identifier [ number_literal ]) . field_identifier) ]))) ;) })) (if_statement "if (pPVar1[4].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }" if (parenthesized_expression "(pPVar1[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[4].traits != UndefinedPixelTrait" (field_expression "pPVar1[4].traits" (subscript_expression "pPVar1[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            *(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];\n            memory[2] = 4;\n          }" { (expression_statement "*(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset];" (assignment_expression "*(double *)(memory + 0x12) = (double)pQVar7[pPVar1[4].offset]" (pointer_expression "*(double *)(memory + 0x12)" * (cast_expression "(double *)(memory + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 0x12)" ( (binary_expression "memory + 0x12" identifier + number_literal) )))) = (cast_expression "(double)pQVar7[pPVar1[4].offset]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pQVar7[pPVar1[4].offset]" identifier [ (field_expression "pPVar1[4].offset" (subscript_expression "pPVar1[4]" identifier [ number_literal ]) . field_identifier) ]))) ;) (expression_statement "memory[2] = 4;" (assignment_expression "memory[2] = 4" (subscript_expression "memory[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (pPVar1[5].traits != UndefinedPixelTrait) {\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }" if (parenthesized_expression "(pPVar1[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[5].traits != UndefinedPixelTrait" (field_expression "pPVar1[5].traits" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n            *(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];\n          }" { (expression_statement "*(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset];" (assignment_expression "*(double *)(memory + 0x14) = (double)pQVar7[pPVar1[5].offset]" (pointer_expression "*(double *)(memory + 0x14)" * (cast_expression "(double *)(memory + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(memory + 0x14)" ( (binary_expression "memory + 0x14" identifier + number_literal) )))) = (cast_expression "(double)pQVar7[pPVar1[5].offset]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pQVar7[pPVar1[5].offset]" identifier [ (field_expression "pPVar1[5].offset" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) ]))) ;) })) })) })) (if_statement "if (name != (char *)0x0) {\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }" if (parenthesized_expression "(name != (char *)0x0)" ( (binary_expression "name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );\n      }" { (expression_statement "QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  );" (call_expression "QueryColorCompliance\n                  (name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  )" identifier (argument_list "(name,AllCompliance,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)),exception\n                  )" ( identifier , identifier , (cast_expression "(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28))" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)((long)this + 0x28))" ( (binary_expression "lVar10 + *(long *)((long)this + 0x28)" identifier + (pointer_expression "*(long *)((long)this + 0x28)" * (cast_expression "(long *)((long)this + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this + 0x28)" ( (binary_expression "(long)this + 0x28" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ))) , identifier ))) ;) })) (expression_statement "GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8);" (call_expression "GravityAdjustGeometry(image->columns,image->rows,SouthGravity,&local_b8)" identifier (argument_list "(image->columns,image->rows,SouthGravity,&local_b8)" ( (field_expression "image->columns" identifier -> field_identifier) , (field_expression "image->rows" identifier -> field_identifier) , identifier , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "image_00 = CropImage(image,&local_b8,exception);" (assignment_expression "image_00 = CropImage(image,&local_b8,exception)" identifier = (call_expression "CropImage(image,&local_b8,exception)" identifier (argument_list "(image,&local_b8,exception)" ( identifier , (pointer_expression "&local_b8" & identifier) , identifier )))) ;) (if_statement "if (image_00 != (Image *)0x0) {\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }" if (parenthesized_expression "(image_00 != (Image *)0x0)" ( (binary_expression "image_00 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n        local_100 = 0;\n        if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }\n        DestroyCacheView(cache_view_00);\n        DestroyImage(image_00);\n      }" { (expression_statement "cache_view_00 = AcquireVirtualCacheView(image_00,exception);" (assignment_expression "cache_view_00 = AcquireVirtualCacheView(image_00,exception)" identifier = (call_expression "AcquireVirtualCacheView(image_00,exception)" identifier (argument_list "(image_00,exception)" ( identifier , identifier )))) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (if_statement "if (0 < (long)image_00->rows) {\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }" if (parenthesized_expression "(0 < (long)image_00->rows)" ( (binary_expression "0 < (long)image_00->rows" number_literal < (cast_expression "(long)image_00->rows" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "image_00->rows" identifier -> field_identifier))) )) (compound_statement "{\n          do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);\n        }" { (do_statement "do {\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < (long)image_00->rows);" do (compound_statement "{\n            pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);\n            if (pQVar7 == (Quantum *)0x0) break;\n            lVar9 = 0;\n            if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }\n            local_100 = local_100 + 1;\n          }" { (expression_statement "pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception);" (assignment_expression "pQVar7 = GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception)" identifier = (call_expression "GetCacheViewVirtualPixels\n                               (cache_view_00,0,local_100,image_00->columns,1,exception)" identifier (argument_list "(cache_view_00,0,local_100,image_00->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image_00->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (pQVar7 == (Quantum *)0x0) break;" if (parenthesized_expression "(pQVar7 == (Quantum *)0x0)" ( (binary_expression "pQVar7 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (if_statement "if (0 < (long)image_00->columns) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }" if (parenthesized_expression "(0 < (long)image_00->columns)" ( (binary_expression "0 < (long)image_00->columns" number_literal < (cast_expression "(long)image_00->columns" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "image_00->columns" identifier -> field_identifier))) )) (compound_statement "{\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);\n            }" { (do_statement "do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 < (long)image_00->columns);" do (compound_statement "{\n                ResetMagickMemory(&local_98,0,0x58);\n                local_98.alpha = DAT_003f95f8;\n                local_98.storage_class = image_00->storage_class;\n                local_98.colorspace = image_00->colorspace;\n                local_98.fuzz = image_00->fuzz;\n                local_98.depth = image_00->depth;\n                local_98.alpha_trait = image_00->alpha_trait;\n                if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }\n                MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));\n                if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }\n                pQVar7 = pQVar7 + image_00->number_channels;\n                lVar9 = lVar9 + 1;\n              }" { (expression_statement "ResetMagickMemory(&local_98,0,0x58);" (call_expression "ResetMagickMemory(&local_98,0,0x58)" identifier (argument_list "(&local_98,0,0x58)" ( (pointer_expression "&local_98" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_98.alpha = DAT_003f95f8;" (assignment_expression "local_98.alpha = DAT_003f95f8" (field_expression "local_98.alpha" identifier . field_identifier) = identifier) ;) (expression_statement "local_98.storage_class = image_00->storage_class;" (assignment_expression "local_98.storage_class = image_00->storage_class" (field_expression "local_98.storage_class" identifier . field_identifier) = (field_expression "image_00->storage_class" identifier -> field_identifier)) ;) (expression_statement "local_98.colorspace = image_00->colorspace;" (assignment_expression "local_98.colorspace = image_00->colorspace" (field_expression "local_98.colorspace" identifier . field_identifier) = (field_expression "image_00->colorspace" identifier -> field_identifier)) ;) (expression_statement "local_98.fuzz = image_00->fuzz;" (assignment_expression "local_98.fuzz = image_00->fuzz" (field_expression "local_98.fuzz" identifier . field_identifier) = (field_expression "image_00->fuzz" identifier -> field_identifier)) ;) (expression_statement "local_98.depth = image_00->depth;" (assignment_expression "local_98.depth = image_00->depth" (field_expression "local_98.depth" identifier . field_identifier) = (field_expression "image_00->depth" identifier -> field_identifier)) ;) (expression_statement "local_98.alpha_trait = image_00->alpha_trait;" (assignment_expression "local_98.alpha_trait = image_00->alpha_trait" (field_expression "local_98.alpha_trait" identifier . field_identifier) = (field_expression "image_00->alpha_trait" identifier -> field_identifier)) ;) (if_statement "if (pQVar7 != (Quantum *)0x0) {\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }" if (parenthesized_expression "(pQVar7 != (Quantum *)0x0)" ( (binary_expression "pQVar7 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pPVar1 = image_00->channel_map;\n                  local_98.red = (MagickRealType)pQVar7[pPVar1->offset];\n                  local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];\n                  local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];\n                  if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }\n                  if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }\n                  if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }\n                }" { (expression_statement "pPVar1 = image_00->channel_map;" (assignment_expression "pPVar1 = image_00->channel_map" identifier = (field_expression "image_00->channel_map" identifier -> field_identifier)) ;) (expression_statement "local_98.red = (MagickRealType)pQVar7[pPVar1->offset];" (assignment_expression "local_98.red = (MagickRealType)pQVar7[pPVar1->offset]" (field_expression "local_98.red" identifier . field_identifier) = (cast_expression "(MagickRealType)pQVar7[pPVar1->offset]" ( (type_descriptor "MagickRealType" type_identifier) ) (subscript_expression "pQVar7[pPVar1->offset]" identifier [ (field_expression "pPVar1->offset" identifier -> field_identifier) ]))) ;) (expression_statement "local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset];" (assignment_expression "local_98.green = (MagickRealType)pQVar7[pPVar1[1].offset]" (field_expression "local_98.green" identifier . field_identifier) = (cast_expression "(MagickRealType)pQVar7[pPVar1[1].offset]" ( (type_descriptor "MagickRealType" type_identifier) ) (subscript_expression "pQVar7[pPVar1[1].offset]" identifier [ (field_expression "pPVar1[1].offset" (subscript_expression "pPVar1[1]" identifier [ number_literal ]) . field_identifier) ]))) ;) (expression_statement "local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset];" (assignment_expression "local_98.blue = (MagickRealType)pQVar7[pPVar1[2].offset]" (field_expression "local_98.blue" identifier . field_identifier) = (cast_expression "(MagickRealType)pQVar7[pPVar1[2].offset]" ( (type_descriptor "MagickRealType" type_identifier) ) (subscript_expression "pQVar7[pPVar1[2].offset]" identifier [ (field_expression "pPVar1[2].offset" (subscript_expression "pPVar1[2]" identifier [ number_literal ]) . field_identifier) ]))) ;) (if_statement "if (pPVar1[3].traits != UndefinedPixelTrait) {\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }" if (parenthesized_expression "(pPVar1[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[3].traits != UndefinedPixelTrait" (field_expression "pPVar1[3].traits" (subscript_expression "pPVar1[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];\n                  }" { (expression_statement "local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset];" (assignment_expression "local_98.black = (MagickRealType)pQVar7[pPVar1[3].offset]" (field_expression "local_98.black" identifier . field_identifier) = (cast_expression "(MagickRealType)pQVar7[pPVar1[3].offset]" ( (type_descriptor "MagickRealType" type_identifier) ) (subscript_expression "pQVar7[pPVar1[3].offset]" identifier [ (field_expression "pPVar1[3].offset" (subscript_expression "pPVar1[3]" identifier [ number_literal ]) . field_identifier) ]))) ;) })) (if_statement "if (pPVar1[4].traits != UndefinedPixelTrait) {\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }" if (parenthesized_expression "(pPVar1[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[4].traits != UndefinedPixelTrait" (field_expression "pPVar1[4].traits" (subscript_expression "pPVar1[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];\n                    local_98.alpha_trait = BlendPixelTrait;\n                  }" { (expression_statement "local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset];" (assignment_expression "local_98.alpha = (MagickRealType)pQVar7[pPVar1[4].offset]" (field_expression "local_98.alpha" identifier . field_identifier) = (cast_expression "(MagickRealType)pQVar7[pPVar1[4].offset]" ( (type_descriptor "MagickRealType" type_identifier) ) (subscript_expression "pQVar7[pPVar1[4].offset]" identifier [ (field_expression "pPVar1[4].offset" (subscript_expression "pPVar1[4]" identifier [ number_literal ]) . field_identifier) ]))) ;) (expression_statement "local_98.alpha_trait = BlendPixelTrait;" (assignment_expression "local_98.alpha_trait = BlendPixelTrait" (field_expression "local_98.alpha_trait" identifier . field_identifier) = identifier) ;) })) (if_statement "if (pPVar1[5].traits != UndefinedPixelTrait) {\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }" if (parenthesized_expression "(pPVar1[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar1[5].traits != UndefinedPixelTrait" (field_expression "pPVar1[5].traits" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];\n                  }" { (expression_statement "local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset];" (assignment_expression "local_98.index = (MagickRealType)pQVar7[pPVar1[5].offset]" (field_expression "local_98.index" identifier . field_identifier) = (cast_expression "(MagickRealType)pQVar7[pPVar1[5].offset]" ( (type_descriptor "MagickRealType" type_identifier) ) (subscript_expression "pQVar7[pPVar1[5].offset]" identifier [ (field_expression "pPVar1[5].offset" (subscript_expression "pPVar1[5]" identifier [ number_literal ]) . field_identifier) ]))) ;) })) })) (expression_statement "MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)));" (assignment_expression "MVar5 = IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)))" identifier = (call_expression "IsFuzzyEquivalencePixelInfo\n                                  (&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)))" identifier (argument_list "(&local_98,(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28)))" ( (pointer_expression "&local_98" & identifier) , (cast_expression "(PixelInfo *)(lVar10 + *(long *)((long)this + 0x28))" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)((long)this + 0x28))" ( (binary_expression "lVar10 + *(long *)((long)this + 0x28)" identifier + (pointer_expression "*(long *)((long)this + 0x28)" * (cast_expression "(long *)((long)this + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this + 0x28)" ( (binary_expression "(long)this + 0x28" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ))) )))) ;) (if_statement "if (MVar5 == MagickFalse) {\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }" if (parenthesized_expression "(MVar5 == MagickFalse)" ( (binary_expression "MVar5 == MagickFalse" identifier == identifier) )) (compound_statement "{\n                  pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));\n                  *pdVar8 = *pdVar8 + DAT_003f9608;\n                }" { (expression_statement "pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20));" (assignment_expression "pdVar8 = (double *)(local_e8 * 8 + *(long *)((long)this + 0x20))" identifier = (cast_expression "(double *)(local_e8 * 8 + *(long *)((long)this + 0x20))" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e8 * 8 + *(long *)((long)this + 0x20))" ( (binary_expression "local_e8 * 8 + *(long *)((long)this + 0x20)" (binary_expression "local_e8 * 8" identifier * number_literal) + (pointer_expression "*(long *)((long)this + 0x20)" * (cast_expression "(long *)((long)this + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this + 0x20)" ( (binary_expression "(long)this + 0x20" (cast_expression "(long)this" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )))) ;) (expression_statement "*pdVar8 = *pdVar8 + DAT_003f9608;" (assignment_expression "*pdVar8 = *pdVar8 + DAT_003f9608" (pointer_expression "*pdVar8" * identifier) = (binary_expression "*pdVar8 + DAT_003f9608" (pointer_expression "*pdVar8" * identifier) + identifier)) ;) })) (expression_statement "pQVar7 = pQVar7 + image_00->number_channels;" (assignment_expression "pQVar7 = pQVar7 + image_00->number_channels" identifier = (binary_expression "pQVar7 + image_00->number_channels" identifier + (field_expression "image_00->number_channels" identifier -> field_identifier))) ;) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 < (long)image_00->columns)" ( (binary_expression "lVar9 < (long)image_00->columns" identifier < (cast_expression "(long)image_00->columns" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "image_00->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_100 < (long)image_00->rows)" ( (binary_expression "local_100 < (long)image_00->rows" identifier < (cast_expression "(long)image_00->rows" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "image_00->rows" identifier -> field_identifier))) )) ;) })) (expression_statement "DestroyCacheView(cache_view_00);" (call_expression "DestroyCacheView(cache_view_00)" identifier (argument_list "(cache_view_00)" ( identifier ))) ;) (expression_statement "DestroyImage(image_00);" (call_expression "DestroyImage(image_00)" identifier (argument_list "(image_00)" ( identifier ))) ;) })) (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 "lVar10 = lVar10 + 0x58;" (assignment_expression "lVar10 = lVar10 + 0x58" identifier = (binary_expression "lVar10 + 0x58" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar6 != local_e8)" ( (binary_expression "lVar6 != local_e8" identifier != identifier) )) ;) })) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0015a0f0(undefined8 *param_1)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0015a0f0(undefined8 *param_1)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0015a0f0(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auVar6 [16];" type_identifier (array_declarator "auVar6 [16]" identifier [ number_literal ]) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "double *pdVar12;" primitive_type (pointer_declarator "*pdVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_e8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_b8 [4];" type_identifier (array_declarator "local_b8 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "double local_60;" primitive_type identifier ;) (declaration "double local_58;" primitive_type identifier ;) (declaration "double local_50;" primitive_type identifier ;) (declaration "double local_48;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = omp_get_num_threads();" (assignment_expression "iVar7 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = omp_get_thread_num();" (assignment_expression "iVar8 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "auVar6._8_8_ = 0;" (assignment_expression "auVar6._8_8_ = 0" (field_expression "auVar6._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar6._0_8_ = SUB168(SEXT816(4),8);" (assignment_expression "auVar6._0_8_ = SUB168(SEXT816(4),8)" (field_expression "auVar6._0_8_" identifier . field_identifier) = (call_expression "SUB168(SEXT816(4),8)" identifier (argument_list "(SEXT816(4),8)" ( (call_expression "SEXT816(4)" identifier (argument_list "(4)" ( number_literal ))) , number_literal )))) ;) (expression_statement "auVar6 = auVar6 << 0x40 | ZEXT816(4);" (assignment_expression "auVar6 = auVar6 << 0x40 | ZEXT816(4)" identifier = (binary_expression "auVar6 << 0x40 | ZEXT816(4)" (binary_expression "auVar6 << 0x40" identifier << number_literal) | (call_expression "ZEXT816(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);" (assignment_expression "lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0)" identifier = (call_expression "SUB168(auVar6 / SEXT816((long)iVar7),0)" identifier (argument_list "(auVar6 / SEXT816((long)iVar7),0)" ( (binary_expression "auVar6 / SEXT816((long)iVar7)" identifier / (call_expression "SEXT816((long)iVar7)" identifier (argument_list "((long)iVar7)" ( (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) , number_literal )))) ;) (expression_statement "local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);" (assignment_expression "local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0)" identifier = (call_expression "SUB168(auVar6 % SEXT816((long)iVar7),0)" identifier (argument_list "(auVar6 % SEXT816((long)iVar7),0)" ( (binary_expression "auVar6 % SEXT816((long)iVar7)" identifier % (call_expression "SEXT816((long)iVar7)" identifier (argument_list "((long)iVar7)" ( (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) , number_literal )))) ;) (if_statement "if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }" if (parenthesized_expression "(iVar8 < local_e8)" ( (binary_expression "iVar8 < local_e8" identifier < identifier) )) (compound_statement "{\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }" { (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) })) (expression_statement "local_e8 = iVar8 * lVar9 + local_e8;" (assignment_expression "local_e8 = iVar8 * lVar9 + local_e8" identifier = (binary_expression "iVar8 * lVar9 + local_e8" (binary_expression "iVar8 * lVar9" identifier * identifier) + identifier)) ;) (expression_statement "lVar9 = lVar9 + local_e8;" (assignment_expression "lVar9 = lVar9 + local_e8" identifier = (binary_expression "lVar9 + local_e8" identifier + identifier)) ;) (if_statement "if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }" if (parenthesized_expression "(local_e8 < lVar9)" ( (binary_expression "local_e8 < lVar9" identifier < identifier) )) (compound_statement "{\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }" { (expression_statement "lVar1 = param_1[3];" (assignment_expression "lVar1 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[1];" (assignment_expression "uVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = (undefined4 *)*param_1;" (assignment_expression "puVar4 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "lVar15 = local_e8 * 0x58;" (assignment_expression "lVar15 = local_e8 * 0x58" identifier = (binary_expression "local_e8 * 0x58" identifier * number_literal)) ;) (do_statement "do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);" do (compound_statement "{\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    }" { (expression_statement "*(undefined8 *)(param_1[4] + local_e8 * 8) = 0;" (assignment_expression "*(undefined8 *)(param_1[4] + local_e8 * 8) = 0" (pointer_expression "*(undefined8 *)(param_1[4] + local_e8 * 8)" * (cast_expression "(undefined8 *)(param_1[4] + local_e8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[4] + local_e8 * 8)" ( (binary_expression "param_1[4] + local_e8 * 8" (subscript_expression "param_1[4]" identifier [ number_literal ]) + (binary_expression "local_e8 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[2] = 0;" (assignment_expression "local_b8[2] = 0" (subscript_expression "local_b8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[3] = 0;" (assignment_expression "local_b8[3] = 0" (subscript_expression "local_b8[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" if (parenthesized_expression "(local_e8 == 2)" ( (binary_expression "local_e8 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }" { (labeled_statement "LAB_0015a297:\n        local_b8[1] = 0;" statement_identifier : (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2)" identifier (argument_list "(uVar3,0,0,1,1,uVar2)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier ))) ;) (expression_statement "local_b8[1] = 1;" (assignment_expression "local_b8[1] = 1" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" else (if_statement "if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" if (parenthesized_expression "(local_e8 != 3)" ( (binary_expression "local_e8 != 3" identifier != number_literal) )) (compound_statement "{\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" { (if_statement "if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }" if (parenthesized_expression "(local_e8 != 1)" ( (binary_expression "local_e8 != 1" identifier != number_literal) )) (compound_statement "{\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }" { (expression_statement "GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" identifier (argument_list "(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" ( identifier , number_literal , (binary_expression "*(long *)(puVar4 + 10) + -1" (pointer_expression "*(long *)(puVar4 + 10)" * (cast_expression "(long *)(puVar4 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[0] = (ulong)(local_e8 != 1);" (assignment_expression "local_b8[0] = (ulong)(local_e8 != 1)" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = (call_expression "(ulong)(local_e8 != 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_e8 != 1)" ( (binary_expression "local_e8 != 1" identifier != number_literal) )))) ;) (expression_statement "GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2)" identifier (argument_list "(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2)" ( identifier , (binary_expression "*(long *)(puVar4 + 8) + -1" (pointer_expression "*(long *)(puVar4 + 8)" * (cast_expression "(long *)(puVar4 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal , identifier ))) ;) (expression_statement "local_b8[0] = 1;" (assignment_expression "local_b8[0] = 1" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0015a297;" goto statement_identifier ;) })))) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);" (assignment_expression "lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" identifier = (call_expression "GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" identifier (argument_list "(uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" ( identifier , (binary_expression "*(long *)(puVar4 + 8) + -1" (pointer_expression "*(long *)(puVar4 + 8)" * (cast_expression "(long *)(puVar4 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(long *)(puVar4 + 10) + -1" (pointer_expression "*(long *)(puVar4 + 10)" * (cast_expression "(long *)(puVar4 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier )))) ;) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8[1] = 1;" (assignment_expression "local_b8[1] = 1" (subscript_expression "local_b8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)(lVar15 + param_1[5]);" (assignment_expression "puVar13 = (undefined4 *)(lVar15 + param_1[5])" identifier = (cast_expression "(undefined4 *)(lVar15 + param_1[5])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + param_1[5])" ( (binary_expression "lVar15 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) )))) ;) (expression_statement "ResetMagickMemory(puVar13,0,0x58);" (call_expression "ResetMagickMemory(puVar13,0,0x58)" identifier (argument_list "(puVar13,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[1] = 0x17;" (assignment_expression "puVar13[1] = 0x17" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 *)(puVar13 + 6) = 0x10;" (assignment_expression "*(undefined8 *)(puVar13 + 6) = 0x10" (pointer_expression "*(undefined8 *)(puVar13 + 6)" * (cast_expression "(undefined8 *)(puVar13 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 6)" ( (binary_expression "puVar13 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar13[2] = 0;" (assignment_expression "puVar13[2] = 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(double *)(puVar13 + 0x12) = DAT_003f95f8;" (assignment_expression "*(double *)(puVar13 + 0x12) = DAT_003f95f8" (pointer_expression "*(double *)(puVar13 + 0x12)" * (cast_expression "(double *)(puVar13 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x12)" ( (binary_expression "puVar13 + 0x12" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }" { (expression_statement "*puVar13 = *puVar4;" (assignment_expression "*puVar13 = *puVar4" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar13[1] = puVar4[1];" (assignment_expression "puVar13[1] = puVar4[1]" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);" (assignment_expression "*(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6)" (pointer_expression "*(undefined8 *)(puVar13 + 4)" * (cast_expression "(undefined8 *)(puVar13 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 4)" ( (binary_expression "puVar13 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar4 + 0xa6)" * (cast_expression "(undefined8 *)(puVar4 + 0xa6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xa6)" ( (binary_expression "puVar4 + 0xa6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);" (assignment_expression "*(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc)" (pointer_expression "*(undefined8 *)(puVar13 + 6)" * (cast_expression "(undefined8 *)(puVar13 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 6)" ( (binary_expression "puVar13 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar4 + 0xc)" * (cast_expression "(undefined8 *)(puVar4 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xc)" ( (binary_expression "puVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar13[2] = puVar4[0xcf];" (assignment_expression "puVar13[2] = puVar4[0xcf]" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (subscript_expression "puVar4[0xcf]" identifier [ number_literal ])) ;) (if_statement "if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }" { (expression_statement "lVar14 = *(long *)(puVar4 + 0xd8);" (assignment_expression "lVar14 = *(long *)(puVar4 + 0xd8)" identifier = (pointer_expression "*(long *)(puVar4 + 0xd8)" * (cast_expression "(long *)(puVar4 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xd8)" ( (binary_expression "puVar4 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);" (assignment_expression "*(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" (pointer_expression "*(double *)(puVar13 + 10)" * (cast_expression "(double *)(puVar13 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 10)" ( (binary_expression "puVar13 + 10" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 8) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 8) * 4" identifier + (binary_expression "*(long *)(lVar14 + 8) * 4" (pointer_expression "*(long *)(lVar14 + 8)" * (cast_expression "(long *)(lVar14 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 8)" ( (binary_expression "lVar14 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "*(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);" (assignment_expression "*(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (pointer_expression "*(double *)(puVar13 + 0xc)" * (cast_expression "(double *)(puVar13 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xc)" ( (binary_expression "puVar13 + 0xc" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x18) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x18) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x18) * 4" (pointer_expression "*(long *)(lVar14 + 0x18)" * (cast_expression "(long *)(lVar14 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x18)" ( (binary_expression "lVar14 + 0x18" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "*(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);" (assignment_expression "*(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (pointer_expression "*(double *)(puVar13 + 0xe)" * (cast_expression "(double *)(puVar13 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xe)" ( (binary_expression "puVar13 + 0xe" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x28) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x28) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x28) * 4" (pointer_expression "*(long *)(lVar14 + 0x28)" * (cast_expression "(long *)(lVar14 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }" if (parenthesized_expression "(*(int *)(lVar14 + 0x34) != 0)" ( (binary_expression "*(int *)(lVar14 + 0x34) != 0" (pointer_expression "*(int *)(lVar14 + 0x34)" * (cast_expression "(int *)(lVar14 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x34)" ( (binary_expression "lVar14 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }" { (expression_statement "*(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);" (assignment_expression "*(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (pointer_expression "*(double *)(puVar13 + 0x10)" * (cast_expression "(double *)(puVar13 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x38) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x38) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x38) * 4" (pointer_expression "*(long *)(lVar14 + 0x38)" * (cast_expression "(long *)(lVar14 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x38)" ( (binary_expression "lVar14 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }" if (parenthesized_expression "(*(int *)(lVar14 + 0x44) != 0)" ( (binary_expression "*(int *)(lVar14 + 0x44) != 0" (pointer_expression "*(int *)(lVar14 + 0x44)" * (cast_expression "(int *)(lVar14 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x44)" ( (binary_expression "lVar14 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }" { (expression_statement "*(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);" (assignment_expression "*(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (pointer_expression "*(double *)(puVar13 + 0x12)" * (cast_expression "(double *)(puVar13 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x12)" ( (binary_expression "puVar13 + 0x12" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x48) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x48) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x48) * 4" (pointer_expression "*(long *)(lVar14 + 0x48)" * (cast_expression "(long *)(lVar14 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x48)" ( (binary_expression "lVar14 + 0x48" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "puVar13[2] = 4;" (assignment_expression "puVar13[2] = 4" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }" if (parenthesized_expression "(*(int *)(lVar14 + 0x54) != 0)" ( (binary_expression "*(int *)(lVar14 + 0x54) != 0" (pointer_expression "*(int *)(lVar14 + 0x54)" * (cast_expression "(int *)(lVar14 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x54)" ( (binary_expression "lVar14 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }" { (expression_statement "*(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);" (assignment_expression "*(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (pointer_expression "*(double *)(puVar13 + 0x14)" * (cast_expression "(double *)(puVar13 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x14)" ( (binary_expression "puVar13 + 0x14" identifier + number_literal) )))) = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x58) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar14 + 0x58) * 4" identifier + (binary_expression "*(long *)(lVar14 + 0x58) * 4" (pointer_expression "*(long *)(lVar14 + 0x58)" * (cast_expression "(long *)(lVar14 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x58)" ( (binary_expression "lVar14 + 0x58" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (if_statement "if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }" { (expression_statement "QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);" (call_expression "QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2)" identifier (argument_list "(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2)" ( identifier , number_literal , (binary_expression "lVar15 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) , identifier ))) ;) })) (expression_statement "GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);" (call_expression "GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8)" identifier (argument_list "(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8)" ( (pointer_expression "*(undefined8 *)(puVar4 + 8)" * (cast_expression "(undefined8 *)(puVar4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(puVar4 + 10)" * (cast_expression "(undefined8 *)(puVar4 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);" (assignment_expression "puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2)" identifier = (cast_expression "(undefined4 *)CropImage(puVar4,local_b8,uVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CropImage(puVar4,local_b8,uVar2)" identifier (argument_list "(puVar4,local_b8,uVar2)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }" { (expression_statement "uVar11 = AcquireVirtualCacheView(puVar13,uVar2);" (assignment_expression "uVar11 = AcquireVirtualCacheView(puVar13,uVar2)" identifier = (call_expression "AcquireVirtualCacheView(puVar13,uVar2)" identifier (argument_list "(puVar13,uVar2)" ( identifier , identifier )))) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }" if (parenthesized_expression "(0 < *(long *)(puVar13 + 10))" ( (binary_expression "0 < *(long *)(puVar13 + 10)" number_literal < (pointer_expression "*(long *)(puVar13 + 10)" * (cast_expression "(long *)(puVar13 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 10)" ( (binary_expression "puVar13 + 10" identifier + number_literal) ))))) )) (compound_statement "{\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }" { (do_statement "do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));" do (compound_statement "{\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          }" { (expression_statement "lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);" (assignment_expression "lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" identifier = (call_expression "GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" identifier (argument_list "(uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined8 *)(puVar13 + 8)" * (cast_expression "(undefined8 *)(puVar13 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = 0;" (assignment_expression "lVar14 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }" if (parenthesized_expression "(0 < *(long *)(puVar13 + 8))" ( (binary_expression "0 < *(long *)(puVar13 + 8)" number_literal < (pointer_expression "*(long *)(puVar13 + 8)" * (cast_expression "(long *)(puVar13 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }" { (do_statement "do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));" do (compound_statement "{\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              }" { (expression_statement "ResetMagickMemory(&local_98,0,0x58);" (call_expression "ResetMagickMemory(&local_98,0,0x58)" identifier (argument_list "(&local_98,0,0x58)" ( (pointer_expression "&local_98" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_50 = DAT_003f95f8;" (assignment_expression "local_50 = DAT_003f95f8" identifier = identifier) ;) (expression_statement "local_98 = *puVar13;" (assignment_expression "local_98 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "local_94 = puVar13[1];" (assignment_expression "local_94 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "local_88 = *(undefined8 *)(puVar13 + 0xa6);" (assignment_expression "local_88 = *(undefined8 *)(puVar13 + 0xa6)" identifier = (pointer_expression "*(undefined8 *)(puVar13 + 0xa6)" * (cast_expression "(undefined8 *)(puVar13 + 0xa6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xa6)" ( (binary_expression "puVar13 + 0xa6" identifier + number_literal) ))))) ;) (expression_statement "local_80 = *(undefined8 *)(puVar13 + 0xc);" (assignment_expression "local_80 = *(undefined8 *)(puVar13 + 0xc)" identifier = (pointer_expression "*(undefined8 *)(puVar13 + 0xc)" * (cast_expression "(undefined8 *)(puVar13 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xc)" ( (binary_expression "puVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_90 = puVar13[0xcf];" (assignment_expression "local_90 = puVar13[0xcf]" identifier = (subscript_expression "puVar13[0xcf]" identifier [ number_literal ])) ;) (if_statement "if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }" { (expression_statement "lVar5 = *(long *)(puVar13 + 0xd8);" (assignment_expression "lVar5 = *(long *)(puVar13 + 0xd8)" identifier = (pointer_expression "*(long *)(puVar13 + 0xd8)" * (cast_expression "(long *)(puVar13 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xd8)" ( (binary_expression "puVar13 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);" (assignment_expression "local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 8) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 8) * 4" identifier + (binary_expression "*(long *)(lVar5 + 8) * 4" (pointer_expression "*(long *)(lVar5 + 8)" * (cast_expression "(long *)(lVar5 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);" (assignment_expression "local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x18) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x18) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x18) * 4" (pointer_expression "*(long *)(lVar5 + 0x18)" * (cast_expression "(long *)(lVar5 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);" (assignment_expression "local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x28) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x28) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x28) * 4" (pointer_expression "*(long *)(lVar5 + 0x28)" * (cast_expression "(long *)(lVar5 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }" if (parenthesized_expression "(*(int *)(lVar5 + 0x34) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x34) != 0" (pointer_expression "*(int *)(lVar5 + 0x34)" * (cast_expression "(int *)(lVar5 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x34)" ( (binary_expression "lVar5 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }" { (expression_statement "local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);" (assignment_expression "local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x38) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x38) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x38) * 4" (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }" if (parenthesized_expression "(*(int *)(lVar5 + 0x44) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x44) != 0" (pointer_expression "*(int *)(lVar5 + 0x44)" * (cast_expression "(int *)(lVar5 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x44)" ( (binary_expression "lVar5 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }" { (expression_statement "local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);" (assignment_expression "local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x48) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x48) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x48) * 4" (pointer_expression "*(long *)(lVar5 + 0x48)" * (cast_expression "(long *)(lVar5 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x48)" ( (binary_expression "lVar5 + 0x48" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_90 = 4;" (assignment_expression "local_90 = 4" identifier = number_literal) ;) })) (if_statement "if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }" if (parenthesized_expression "(*(int *)(lVar5 + 0x54) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x54) != 0" (pointer_expression "*(int *)(lVar5 + 0x54)" * (cast_expression "(int *)(lVar5 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x54)" ( (binary_expression "lVar5 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }" { (expression_statement "local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);" (assignment_expression "local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" identifier = (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" * (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x58) * 4)" ( (binary_expression "lVar10 + *(long *)(lVar5 + 0x58) * 4" identifier + (binary_expression "*(long *)(lVar5 + 0x58) * 4" (pointer_expression "*(long *)(lVar5 + 0x58)" * (cast_expression "(long *)(lVar5 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x58)" ( (binary_expression "lVar5 + 0x58" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);" (assignment_expression "iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5])" identifier = (call_expression "IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5])" identifier (argument_list "(&local_98,lVar15 + param_1[5])" ( (pointer_expression "&local_98" & identifier) , (binary_expression "lVar15 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }" { (expression_statement "pdVar12 = (double *)(local_e8 * 8 + param_1[4]);" (assignment_expression "pdVar12 = (double *)(local_e8 * 8 + param_1[4])" identifier = (cast_expression "(double *)(local_e8 * 8 + param_1[4])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e8 * 8 + param_1[4])" ( (binary_expression "local_e8 * 8 + param_1[4]" (binary_expression "local_e8 * 8" identifier * number_literal) + (subscript_expression "param_1[4]" identifier [ number_literal ])) )))) ;) (expression_statement "*pdVar12 = *pdVar12 + DAT_003f9608;" (assignment_expression "*pdVar12 = *pdVar12 + DAT_003f9608" (pointer_expression "*pdVar12" * identifier) = (binary_expression "*pdVar12 + DAT_003f9608" (pointer_expression "*pdVar12" * identifier) + identifier)) ;) })) (expression_statement "lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;" (assignment_expression "lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4" identifier = (binary_expression "lVar10 + *(long *)(puVar13 + 0xd0) * 4" identifier + (binary_expression "*(long *)(puVar13 + 0xd0) * 4" (pointer_expression "*(long *)(puVar13 + 0xd0)" * (cast_expression "(long *)(puVar13 + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xd0)" ( (binary_expression "puVar13 + 0xd0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "lVar14 = lVar14 + 1;" (assignment_expression "lVar14 = lVar14 + 1" identifier = (binary_expression "lVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar14 < *(long *)(puVar13 + 8))" ( (binary_expression "lVar14 < *(long *)(puVar13 + 8)" identifier < (pointer_expression "*(long *)(puVar13 + 8)" * (cast_expression "(long *)(puVar13 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) )) ;) })) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_100 < *(long *)(puVar13 + 10))" ( (binary_expression "local_100 < *(long *)(puVar13 + 10)" identifier < (pointer_expression "*(long *)(puVar13 + 10)" * (cast_expression "(long *)(puVar13 + 10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 10)" ( (binary_expression "puVar13 + 10" identifier + number_literal) ))))) )) ;) })) (expression_statement "DestroyCacheView(uVar11);" (call_expression "DestroyCacheView(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "DestroyImage(puVar13);" (call_expression "DestroyImage(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (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 "lVar15 = lVar15 + 0x58;" (assignment_expression "lVar15 = lVar15 + 0x58" identifier = (binary_expression "lVar15 + 0x58" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != local_e8)" ( (binary_expression "lVar9 != local_e8" identifier != identifier) )) ;) })) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( LIT ))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT / (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT % (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) = 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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0015a0f0(undefined8 *param_1)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0015a0f0(undefined8 *param_1)" (identifier "FUN_0015a0f0") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined4 *puVar4;\n  long lVar5;\n  undefined1 auVar6 [16];\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  double *pdVar12;\n  undefined4 *puVar13;\n  long lVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  long local_100;\n  long local_e8;\n  ulong local_b8 [4];\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  double local_70;\n  double local_68;\n  double local_60;\n  double local_58;\n  double local_50;\n  double local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar7 = omp_get_num_threads();\n  iVar8 = omp_get_thread_num();\n  auVar6._8_8_ = 0;\n  auVar6._0_8_ = SUB168(SEXT816(4),8);\n  auVar6 = auVar6 << 0x40 | ZEXT816(4);\n  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);\n  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);\n  if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }\n  local_e8 = iVar8 * lVar9 + local_e8;\n  lVar9 = lVar9 + local_e8;\n  if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "undefined1 auVar6 [16];" (type_identifier "undefined1") (array_declarator "auVar6 [16]" (identifier "auVar6") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "double *pdVar12;" (primitive_type "double") (pointer_declarator "*pdVar12" (* "*") (identifier "pdVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "long local_100;" (sized_type_specifier "long" (long "long")) (identifier "local_100") (; ";")) (declaration "long local_e8;" (sized_type_specifier "long" (long "long")) (identifier "local_e8") (; ";")) (declaration "ulong local_b8 [4];" (type_identifier "ulong") (array_declarator "local_b8 [4]" (identifier "local_b8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_98;" (type_identifier "undefined4") (identifier "local_98") (; ";")) (declaration "undefined4 local_94;" (type_identifier "undefined4") (identifier "local_94") (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "double local_70;" (primitive_type "double") (identifier "local_70") (; ";")) (declaration "double local_68;" (primitive_type "double") (identifier "local_68") (; ";")) (declaration "double local_60;" (primitive_type "double") (identifier "local_60") (; ";")) (declaration "double local_58;" (primitive_type "double") (identifier "local_58") (; ";")) (declaration "double local_50;" (primitive_type "double") (identifier "local_50") (; ";")) (declaration "double local_48;" (primitive_type "double") (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar7 = omp_get_num_threads();" (assignment_expression "iVar7 = omp_get_num_threads()" (identifier "iVar7") (= "=") (call_expression "omp_get_num_threads()" (identifier "omp_get_num_threads") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = omp_get_thread_num();" (assignment_expression "iVar8 = omp_get_thread_num()" (identifier "iVar8") (= "=") (call_expression "omp_get_thread_num()" (identifier "omp_get_thread_num") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "auVar6._8_8_ = 0;" (assignment_expression "auVar6._8_8_ = 0" (field_expression "auVar6._8_8_" (identifier "auVar6") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auVar6._0_8_ = SUB168(SEXT816(4),8);" (assignment_expression "auVar6._0_8_ = SUB168(SEXT816(4),8)" (field_expression "auVar6._0_8_" (identifier "auVar6") (. ".") (field_identifier "_0_8_")) (= "=") (call_expression "SUB168(SEXT816(4),8)" (identifier "SUB168") (argument_list "(SEXT816(4),8)" (( "(") (call_expression "SEXT816(4)" (identifier "SEXT816") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "auVar6 = auVar6 << 0x40 | ZEXT816(4);" (assignment_expression "auVar6 = auVar6 << 0x40 | ZEXT816(4)" (identifier "auVar6") (= "=") (binary_expression "auVar6 << 0x40 | ZEXT816(4)" (binary_expression "auVar6 << 0x40" (identifier "auVar6") (<< "<<") (number_literal "0x40")) (| "|") (call_expression "ZEXT816(4)" (identifier "ZEXT816") (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);" (assignment_expression "lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0)" (identifier "lVar9") (= "=") (call_expression "SUB168(auVar6 / SEXT816((long)iVar7),0)" (identifier "SUB168") (argument_list "(auVar6 / SEXT816((long)iVar7),0)" (( "(") (binary_expression "auVar6 / SEXT816((long)iVar7)" (identifier "auVar6") (/ "/") (call_expression "SEXT816((long)iVar7)" (identifier "SEXT816") (argument_list "((long)iVar7)" (( "(") (cast_expression "(long)iVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar7")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);" (assignment_expression "local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0)" (identifier "local_e8") (= "=") (call_expression "SUB168(auVar6 % SEXT816((long)iVar7),0)" (identifier "SUB168") (argument_list "(auVar6 % SEXT816((long)iVar7),0)" (( "(") (binary_expression "auVar6 % SEXT816((long)iVar7)" (identifier "auVar6") (% "%") (call_expression "SEXT816((long)iVar7)" (identifier "SEXT816") (argument_list "((long)iVar7)" (( "(") (cast_expression "(long)iVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar7")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar8 < local_e8) {\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }" (if "if") (parenthesized_expression "(iVar8 < local_e8)" (( "(") (binary_expression "iVar8 < local_e8" (identifier "iVar8") (< "<") (identifier "local_e8")) () ")")) (compound_statement "{\n    lVar9 = lVar9 + 1;\n    local_e8 = 0;\n  }" ({ "{") (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + 1" (identifier "lVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_e8 = iVar8 * lVar9 + local_e8;" (assignment_expression "local_e8 = iVar8 * lVar9 + local_e8" (identifier "local_e8") (= "=") (binary_expression "iVar8 * lVar9 + local_e8" (binary_expression "iVar8 * lVar9" (identifier "iVar8") (* "*") (identifier "lVar9")) (+ "+") (identifier "local_e8"))) (; ";")) (expression_statement "lVar9 = lVar9 + local_e8;" (assignment_expression "lVar9 = lVar9 + local_e8" (identifier "lVar9") (= "=") (binary_expression "lVar9 + local_e8" (identifier "lVar9") (+ "+") (identifier "local_e8"))) (; ";")) (if_statement "if (local_e8 < lVar9) {\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }" (if "if") (parenthesized_expression "(local_e8 < lVar9)" (( "(") (binary_expression "local_e8 < lVar9" (identifier "local_e8") (< "<") (identifier "lVar9")) () ")")) (compound_statement "{\n    lVar1 = param_1[3];\n    uVar2 = param_1[2];\n    uVar3 = param_1[1];\n    puVar4 = (undefined4 *)*param_1;\n    lVar15 = local_e8 * 0x58;\n    do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);\n  }" ({ "{") (expression_statement "lVar1 = param_1[3];" (assignment_expression "lVar1 = param_1[3]" (identifier "lVar1") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" (identifier "uVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = param_1[1];" (assignment_expression "uVar3 = param_1[1]" (identifier "uVar3") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)*param_1;" (assignment_expression "puVar4 = (undefined4 *)*param_1" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "lVar15 = local_e8 * 0x58;" (assignment_expression "lVar15 = local_e8 * 0x58" (identifier "lVar15") (= "=") (binary_expression "local_e8 * 0x58" (identifier "local_e8") (* "*") (number_literal "0x58"))) (; ";")) (do_statement "do {\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    } while (lVar9 != local_e8);" (do "do") (compound_statement "{\n      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;\n      local_b8[0] = 0;\n      local_b8[1] = 0;\n      local_b8[2] = 0;\n      local_b8[3] = 0;\n      if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }\n      local_b8[0] = 0;\n      lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n      local_b8[0] = 0;\n      local_b8[1] = 1;\n      puVar13 = (undefined4 *)(lVar15 + param_1[5]);\n      ResetMagickMemory(puVar13,0,0x58);\n      *puVar13 = 1;\n      puVar13[1] = 0x17;\n      *(undefined8 *)(puVar13 + 6) = 0x10;\n      puVar13[2] = 0;\n      *(double *)(puVar13 + 0x12) = DAT_003f95f8;\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }\n      if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }\n      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);\n      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);\n      if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }\n      local_e8 = local_e8 + 1;\n      lVar15 = lVar15 + 0x58;\n    }" ({ "{") (expression_statement "*(undefined8 *)(param_1[4] + local_e8 * 8) = 0;" (assignment_expression "*(undefined8 *)(param_1[4] + local_e8 * 8) = 0" (pointer_expression "*(undefined8 *)(param_1[4] + local_e8 * 8)" (* "*") (cast_expression "(undefined8 *)(param_1[4] + local_e8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[4] + local_e8 * 8)" (( "(") (binary_expression "param_1[4] + local_e8 * 8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (+ "+") (binary_expression "local_e8 * 8" (identifier "local_e8") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" (identifier "local_b8") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" (identifier "local_b8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8[2] = 0;" (assignment_expression "local_b8[2] = 0" (subscript_expression "local_b8[2]" (identifier "local_b8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8[3] = 0;" (assignment_expression "local_b8[3] = 0" (subscript_expression "local_b8[3]" (identifier "local_b8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_e8 == 2) {\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }\n      else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" (if "if") (parenthesized_expression "(local_e8 == 2)" (( "(") (binary_expression "local_e8 == 2" (identifier "local_e8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\nLAB_0015a297:\n        local_b8[1] = 0;\n        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);\n        local_b8[1] = 1;\n      }" ({ "{") (labeled_statement "LAB_0015a297:\n        local_b8[1] = 0;" (statement_identifier "LAB_0015a297") (: ":") (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" (identifier "local_b8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar3,0,0,1,1,uVar2)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "local_b8[1] = 1;" (assignment_expression "local_b8[1] = 1" (subscript_expression "local_b8[1]" (identifier "local_b8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" (else "else") (if_statement "if (local_e8 != 3) {\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" (if "if") (parenthesized_expression "(local_e8 != 3)" (( "(") (binary_expression "local_e8 != 3" (identifier "local_e8") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }\n        local_b8[1] = 0;\n        local_b8[0] = (ulong)(local_e8 != 1);\n        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);\n        local_b8[0] = 1;\n        goto LAB_0015a297;\n      }" ({ "{") (if_statement "if (local_e8 != 1) {\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }" (if "if") (parenthesized_expression "(local_e8 != 1)" (( "(") (binary_expression "local_e8 != 1" (identifier "local_e8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);\n        }" ({ "{") (expression_statement "GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") (, ",") (binary_expression "*(long *)(puVar4 + 10) + -1" (pointer_expression "*(long *)(puVar4 + 10)" (* "*") (cast_expression "(long *)(puVar4 + 10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 10)" (( "(") (binary_expression "puVar4 + 10" (identifier "puVar4") (+ "+") (number_literal "10")) () ")")))) (+ "+") (number_literal "-1")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "local_b8[1] = 0;" (assignment_expression "local_b8[1] = 0" (subscript_expression "local_b8[1]" (identifier "local_b8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8[0] = (ulong)(local_e8 != 1);" (assignment_expression "local_b8[0] = (ulong)(local_e8 != 1)" (subscript_expression "local_b8[0]" (identifier "local_b8") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(ulong)(local_e8 != 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(local_e8 != 1)" (( "(") (binary_expression "local_e8 != 1" (identifier "local_e8") (!= "!=") (number_literal "1")) () ")")))) (; ";")) (expression_statement "GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);" (call_expression "GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2)" (( "(") (identifier "uVar3") (, ",") (binary_expression "*(long *)(puVar4 + 8) + -1" (pointer_expression "*(long *)(puVar4 + 8)" (* "*") (cast_expression "(long *)(puVar4 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 8)" (( "(") (binary_expression "puVar4 + 8" (identifier "puVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "-1")) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "local_b8[0] = 1;" (assignment_expression "local_b8[0] = 1" (subscript_expression "local_b8[0]" (identifier "local_b8") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0015a297;" (goto "goto") (statement_identifier "LAB_0015a297") (; ";")) (} "}"))))) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" (identifier "local_b8") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);" (assignment_expression "lVar10 = GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" (identifier "lVar10") (= "=") (call_expression "GetCacheViewVirtualPixels\n                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2)" (( "(") (identifier "uVar3") (, ",") (binary_expression "*(long *)(puVar4 + 8) + -1" (pointer_expression "*(long *)(puVar4 + 8)" (* "*") (cast_expression "(long *)(puVar4 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 8)" (( "(") (binary_expression "puVar4 + 8" (identifier "puVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "-1")) (, ",") (binary_expression "*(long *)(puVar4 + 10) + -1" (pointer_expression "*(long *)(puVar4 + 10)" (* "*") (cast_expression "(long *)(puVar4 + 10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 10)" (( "(") (binary_expression "puVar4 + 10" (identifier "puVar4") (+ "+") (number_literal "10")) () ")")))) (+ "+") (number_literal "-1")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "local_b8[0] = 0;" (assignment_expression "local_b8[0] = 0" (subscript_expression "local_b8[0]" (identifier "local_b8") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8[1] = 1;" (assignment_expression "local_b8[1] = 1" (subscript_expression "local_b8[1]" (identifier "local_b8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13 = (undefined4 *)(lVar15 + param_1[5]);" (assignment_expression "puVar13 = (undefined4 *)(lVar15 + param_1[5])" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(lVar15 + param_1[5])" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + param_1[5])" (( "(") (binary_expression "lVar15 + param_1[5]" (identifier "lVar15") (+ "+") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) () ")")))) (; ";")) (expression_statement "ResetMagickMemory(puVar13,0,0x58);" (call_expression "ResetMagickMemory(puVar13,0,0x58)" (identifier "ResetMagickMemory") (argument_list "(puVar13,0,0x58)" (( "(") (identifier "puVar13") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13[1] = 0x17;" (assignment_expression "puVar13[1] = 0x17" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "*(undefined8 *)(puVar13 + 6) = 0x10;" (assignment_expression "*(undefined8 *)(puVar13 + 6) = 0x10" (pointer_expression "*(undefined8 *)(puVar13 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 6)" (( "(") (binary_expression "puVar13 + 6" (identifier "puVar13") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "puVar13[2] = 0;" (assignment_expression "puVar13[2] = 0" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(double *)(puVar13 + 0x12) = DAT_003f95f8;" (assignment_expression "*(double *)(puVar13 + 0x12) = DAT_003f95f8" (pointer_expression "*(double *)(puVar13 + 0x12)" (* "*") (cast_expression "(double *)(puVar13 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x12)" (( "(") (binary_expression "puVar13 + 0x12" (identifier "puVar13") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "DAT_003f95f8")) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *puVar13 = *puVar4;\n        puVar13[1] = puVar4[1];\n        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);\n        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);\n        puVar13[2] = puVar4[0xcf];\n        if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }\n      }" ({ "{") (expression_statement "*puVar13 = *puVar4;" (assignment_expression "*puVar13 = *puVar4" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar13[1] = puVar4[1];" (assignment_expression "puVar13[1] = puVar4[1]" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);" (assignment_expression "*(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6)" (pointer_expression "*(undefined8 *)(puVar13 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 4)" (( "(") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(puVar4 + 0xa6)" (* "*") (cast_expression "(undefined8 *)(puVar4 + 0xa6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0xa6)" (( "(") (binary_expression "puVar4 + 0xa6" (identifier "puVar4") (+ "+") (number_literal "0xa6")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);" (assignment_expression "*(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc)" (pointer_expression "*(undefined8 *)(puVar13 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 6)" (( "(") (binary_expression "puVar13 + 6" (identifier "puVar13") (+ "+") (number_literal "6")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(puVar4 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar4 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0xc)" (( "(") (binary_expression "puVar4 + 0xc" (identifier "puVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar13[2] = puVar4[0xcf];" (assignment_expression "puVar13[2] = puVar4[0xcf]" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar4[0xcf]" (identifier "puVar4") ([ "[") (number_literal "0xcf") (] "]"))) (; ";")) (if_statement "if (lVar10 != 0) {\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }" (if "if") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar14 = *(long *)(puVar4 + 0xd8);\n          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);\n          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);\n          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);\n          if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }\n          if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }\n          if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }\n        }" ({ "{") (expression_statement "lVar14 = *(long *)(puVar4 + 0xd8);" (assignment_expression "lVar14 = *(long *)(puVar4 + 0xd8)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(puVar4 + 0xd8)" (* "*") (cast_expression "(long *)(puVar4 + 0xd8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0xd8)" (( "(") (binary_expression "puVar4 + 0xd8" (identifier "puVar4") (+ "+") (number_literal "0xd8")) () ")"))))) (; ";")) (expression_statement "*(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);" (assignment_expression "*(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" (pointer_expression "*(double *)(puVar13 + 10)" (* "*") (cast_expression "(double *)(puVar13 + 10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 10)" (( "(") (binary_expression "puVar13 + 10" (identifier "puVar13") (+ "+") (number_literal "10")) () ")")))) (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 8) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar14 + 8) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar14 + 8) * 4" (pointer_expression "*(long *)(lVar14 + 8)" (* "*") (cast_expression "(long *)(lVar14 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 8)" (( "(") (binary_expression "lVar14 + 8" (identifier "lVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "*(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);" (assignment_expression "*(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (pointer_expression "*(double *)(puVar13 + 0xc)" (* "*") (cast_expression "(double *)(puVar13 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0xc)" (( "(") (binary_expression "puVar13 + 0xc" (identifier "puVar13") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x18) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar14 + 0x18) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar14 + 0x18) * 4" (pointer_expression "*(long *)(lVar14 + 0x18)" (* "*") (cast_expression "(long *)(lVar14 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x18)" (( "(") (binary_expression "lVar14 + 0x18" (identifier "lVar14") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "*(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);" (assignment_expression "*(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (pointer_expression "*(double *)(puVar13 + 0xe)" (* "*") (cast_expression "(double *)(puVar13 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0xe)" (( "(") (binary_expression "puVar13 + 0xe" (identifier "puVar13") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x28) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar14 + 0x28) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar14 + 0x28) * 4" (pointer_expression "*(long *)(lVar14 + 0x28)" (* "*") (cast_expression "(long *)(lVar14 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x28)" (( "(") (binary_expression "lVar14 + 0x28" (identifier "lVar14") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(lVar14 + 0x34) != 0) {\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }" (if "if") (parenthesized_expression "(*(int *)(lVar14 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(lVar14 + 0x34) != 0" (pointer_expression "*(int *)(lVar14 + 0x34)" (* "*") (cast_expression "(int *)(lVar14 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x34)" (( "(") (binary_expression "lVar14 + 0x34" (identifier "lVar14") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);\n          }" ({ "{") (expression_statement "*(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);" (assignment_expression "*(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (pointer_expression "*(double *)(puVar13 + 0x10)" (* "*") (cast_expression "(double *)(puVar13 + 0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x10)" (( "(") (binary_expression "puVar13 + 0x10" (identifier "puVar13") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x38) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar14 + 0x38) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar14 + 0x38) * 4" (pointer_expression "*(long *)(lVar14 + 0x38)" (* "*") (cast_expression "(long *)(lVar14 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x38)" (( "(") (binary_expression "lVar14 + 0x38" (identifier "lVar14") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar14 + 0x44) != 0) {\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }" (if "if") (parenthesized_expression "(*(int *)(lVar14 + 0x44) != 0)" (( "(") (binary_expression "*(int *)(lVar14 + 0x44) != 0" (pointer_expression "*(int *)(lVar14 + 0x44)" (* "*") (cast_expression "(int *)(lVar14 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x44)" (( "(") (binary_expression "lVar14 + 0x44" (identifier "lVar14") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);\n            puVar13[2] = 4;\n          }" ({ "{") (expression_statement "*(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);" (assignment_expression "*(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (pointer_expression "*(double *)(puVar13 + 0x12)" (* "*") (cast_expression "(double *)(puVar13 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x12)" (( "(") (binary_expression "puVar13 + 0x12" (identifier "puVar13") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x48) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar14 + 0x48) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar14 + 0x48) * 4" (pointer_expression "*(long *)(lVar14 + 0x48)" (* "*") (cast_expression "(long *)(lVar14 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x48)" (( "(") (binary_expression "lVar14 + 0x48" (identifier "lVar14") (+ "+") (number_literal "0x48")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "puVar13[2] = 4;" (assignment_expression "puVar13[2] = 4" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar14 + 0x54) != 0) {\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }" (if "if") (parenthesized_expression "(*(int *)(lVar14 + 0x54) != 0)" (( "(") (binary_expression "*(int *)(lVar14 + 0x54) != 0" (pointer_expression "*(int *)(lVar14 + 0x54)" (* "*") (cast_expression "(int *)(lVar14 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x54)" (( "(") (binary_expression "lVar14 + 0x54" (identifier "lVar14") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);\n          }" ({ "{") (expression_statement "*(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);" (assignment_expression "*(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (pointer_expression "*(double *)(puVar13 + 0x14)" (* "*") (cast_expression "(double *)(puVar13 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x14)" (( "(") (binary_expression "puVar13 + 0x14" (identifier "puVar13") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar14 + 0x58) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar14 + 0x58) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar14 + 0x58) * 4" (pointer_expression "*(long *)(lVar14 + 0x58)" (* "*") (cast_expression "(long *)(lVar14 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x58)" (( "(") (binary_expression "lVar14 + 0x58" (identifier "lVar14") (+ "+") (number_literal "0x58")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (lVar1 != 0) {\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);\n      }" ({ "{") (expression_statement "QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);" (call_expression "QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2)" (identifier "QueryColorCompliance") (argument_list "(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2)" (( "(") (identifier "lVar1") (, ",") (number_literal "0x7fffffff") (, ",") (binary_expression "lVar15 + param_1[5]" (identifier "lVar15") (+ "+") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);" (call_expression "GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8)" (identifier "GravityAdjustGeometry") (argument_list "(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8)" (( "(") (pointer_expression "*(undefined8 *)(puVar4 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar4 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 8)" (( "(") (binary_expression "puVar4 + 8" (identifier "puVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(puVar4 + 10)" (* "*") (cast_expression "(undefined8 *)(puVar4 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 10)" (( "(") (binary_expression "puVar4 + 10" (identifier "puVar4") (+ "+") (number_literal "10")) () ")")))) (, ",") (number_literal "8") (, ",") (identifier "local_b8") () ")"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);" (assignment_expression "puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)CropImage(puVar4,local_b8,uVar2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CropImage(puVar4,local_b8,uVar2)" (identifier "CropImage") (argument_list "(puVar4,local_b8,uVar2)" (( "(") (identifier "puVar4") (, ",") (identifier "local_b8") (, ",") (identifier "uVar2") () ")"))))) (; ";")) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);\n        local_100 = 0;\n        if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }\n        DestroyCacheView(uVar11);\n        DestroyImage(puVar13);\n      }" ({ "{") (expression_statement "uVar11 = AcquireVirtualCacheView(puVar13,uVar2);" (assignment_expression "uVar11 = AcquireVirtualCacheView(puVar13,uVar2)" (identifier "uVar11") (= "=") (call_expression "AcquireVirtualCacheView(puVar13,uVar2)" (identifier "AcquireVirtualCacheView") (argument_list "(puVar13,uVar2)" (( "(") (identifier "puVar13") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *(long *)(puVar13 + 10)) {\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }" (if "if") (parenthesized_expression "(0 < *(long *)(puVar13 + 10))" (( "(") (binary_expression "0 < *(long *)(puVar13 + 10)" (number_literal "0") (< "<") (pointer_expression "*(long *)(puVar13 + 10)" (* "*") (cast_expression "(long *)(puVar13 + 10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 10)" (( "(") (binary_expression "puVar13 + 10" (identifier "puVar13") (+ "+") (number_literal "10")) () ")"))))) () ")")) (compound_statement "{\n          do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));\n        }" ({ "{") (do_statement "do {\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          } while (local_100 < *(long *)(puVar13 + 10));" (do "do") (compound_statement "{\n            lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);\n            if (lVar10 == 0) break;\n            lVar14 = 0;\n            if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }\n            local_100 = local_100 + 1;\n          }" ({ "{") (expression_statement "lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);" (assignment_expression "lVar10 = GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" (identifier "lVar10") (= "=") (call_expression "GetCacheViewVirtualPixels\n                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2)" (( "(") (identifier "uVar11") (, ",") (number_literal "0") (, ",") (identifier "local_100") (, ",") (pointer_expression "*(undefined8 *)(puVar13 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 8)" (( "(") (binary_expression "puVar13 + 8" (identifier "puVar13") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar14 = 0;" (assignment_expression "lVar14 = 0" (identifier "lVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *(long *)(puVar13 + 8)) {\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }" (if "if") (parenthesized_expression "(0 < *(long *)(puVar13 + 8))" (( "(") (binary_expression "0 < *(long *)(puVar13 + 8)" (number_literal "0") (< "<") (pointer_expression "*(long *)(puVar13 + 8)" (* "*") (cast_expression "(long *)(puVar13 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 8)" (( "(") (binary_expression "puVar13 + 8" (identifier "puVar13") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n              do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));\n            }" ({ "{") (do_statement "do {\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              } while (lVar14 < *(long *)(puVar13 + 8));" (do "do") (compound_statement "{\n                ResetMagickMemory(&local_98,0,0x58);\n                local_50 = DAT_003f95f8;\n                local_98 = *puVar13;\n                local_94 = puVar13[1];\n                local_88 = *(undefined8 *)(puVar13 + 0xa6);\n                local_80 = *(undefined8 *)(puVar13 + 0xc);\n                local_90 = puVar13[0xcf];\n                if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }\n                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);\n                if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }\n                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;\n                lVar14 = lVar14 + 1;\n              }" ({ "{") (expression_statement "ResetMagickMemory(&local_98,0,0x58);" (call_expression "ResetMagickMemory(&local_98,0,0x58)" (identifier "ResetMagickMemory") (argument_list "(&local_98,0,0x58)" (( "(") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "local_50 = DAT_003f95f8;" (assignment_expression "local_50 = DAT_003f95f8" (identifier "local_50") (= "=") (identifier "DAT_003f95f8")) (; ";")) (expression_statement "local_98 = *puVar13;" (assignment_expression "local_98 = *puVar13" (identifier "local_98") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "local_94 = puVar13[1];" (assignment_expression "local_94 = puVar13[1]" (identifier "local_94") (= "=") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_88 = *(undefined8 *)(puVar13 + 0xa6);" (assignment_expression "local_88 = *(undefined8 *)(puVar13 + 0xa6)" (identifier "local_88") (= "=") (pointer_expression "*(undefined8 *)(puVar13 + 0xa6)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 0xa6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0xa6)" (( "(") (binary_expression "puVar13 + 0xa6" (identifier "puVar13") (+ "+") (number_literal "0xa6")) () ")"))))) (; ";")) (expression_statement "local_80 = *(undefined8 *)(puVar13 + 0xc);" (assignment_expression "local_80 = *(undefined8 *)(puVar13 + 0xc)" (identifier "local_80") (= "=") (pointer_expression "*(undefined8 *)(puVar13 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0xc)" (( "(") (binary_expression "puVar13 + 0xc" (identifier "puVar13") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_90 = puVar13[0xcf];" (assignment_expression "local_90 = puVar13[0xcf]" (identifier "local_90") (= "=") (subscript_expression "puVar13[0xcf]" (identifier "puVar13") ([ "[") (number_literal "0xcf") (] "]"))) (; ";")) (if_statement "if (lVar10 != 0) {\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }" (if "if") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  lVar5 = *(long *)(puVar13 + 0xd8);\n                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);\n                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);\n                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);\n                  if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }\n                  if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }\n                  if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }\n                }" ({ "{") (expression_statement "lVar5 = *(long *)(puVar13 + 0xd8);" (assignment_expression "lVar5 = *(long *)(puVar13 + 0xd8)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(puVar13 + 0xd8)" (* "*") (cast_expression "(long *)(puVar13 + 0xd8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0xd8)" (( "(") (binary_expression "puVar13 + 0xd8" (identifier "puVar13") (+ "+") (number_literal "0xd8")) () ")"))))) (; ";")) (expression_statement "local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);" (assignment_expression "local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" (identifier "local_70") (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 8) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar5 + 8) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar5 + 8) * 4" (pointer_expression "*(long *)(lVar5 + 8)" (* "*") (cast_expression "(long *)(lVar5 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 8)" (( "(") (binary_expression "lVar5 + 8" (identifier "lVar5") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);" (assignment_expression "local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" (identifier "local_68") (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x18) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar5 + 0x18) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar5 + 0x18) * 4" (pointer_expression "*(long *)(lVar5 + 0x18)" (* "*") (cast_expression "(long *)(lVar5 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);" (assignment_expression "local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" (identifier "local_60") (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x28) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar5 + 0x28) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar5 + 0x28) * 4" (pointer_expression "*(long *)(lVar5 + 0x28)" (* "*") (cast_expression "(long *)(lVar5 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x28)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(lVar5 + 0x34) != 0) {\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(lVar5 + 0x34) != 0" (pointer_expression "*(int *)(lVar5 + 0x34)" (* "*") (cast_expression "(int *)(lVar5 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x34)" (( "(") (binary_expression "lVar5 + 0x34" (identifier "lVar5") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);\n                  }" ({ "{") (expression_statement "local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);" (assignment_expression "local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" (identifier "local_58") (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x38) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar5 + 0x38) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar5 + 0x38) * 4" (pointer_expression "*(long *)(lVar5 + 0x38)" (* "*") (cast_expression "(long *)(lVar5 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar5 + 0x44) != 0) {\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0x44) != 0)" (( "(") (binary_expression "*(int *)(lVar5 + 0x44) != 0" (pointer_expression "*(int *)(lVar5 + 0x44)" (* "*") (cast_expression "(int *)(lVar5 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x44)" (( "(") (binary_expression "lVar5 + 0x44" (identifier "lVar5") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);\n                    local_90 = 4;\n                  }" ({ "{") (expression_statement "local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);" (assignment_expression "local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" (identifier "local_50") (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x48) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar5 + 0x48) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar5 + 0x48) * 4" (pointer_expression "*(long *)(lVar5 + 0x48)" (* "*") (cast_expression "(long *)(lVar5 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x48)" (( "(") (binary_expression "lVar5 + 0x48" (identifier "lVar5") (+ "+") (number_literal "0x48")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_90 = 4;" (assignment_expression "local_90 = 4" (identifier "local_90") (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar5 + 0x54) != 0) {\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0x54) != 0)" (( "(") (binary_expression "*(int *)(lVar5 + 0x54) != 0" (pointer_expression "*(int *)(lVar5 + 0x54)" (* "*") (cast_expression "(int *)(lVar5 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x54)" (( "(") (binary_expression "lVar5 + 0x54" (identifier "lVar5") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);\n                  }" ({ "{") (expression_statement "local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);" (assignment_expression "local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" (identifier "local_48") (= "=") (cast_expression "(double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" (* "*") (cast_expression "(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + *(long *)(lVar5 + 0x58) * 4)" (( "(") (binary_expression "lVar10 + *(long *)(lVar5 + 0x58) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(lVar5 + 0x58) * 4" (pointer_expression "*(long *)(lVar5 + 0x58)" (* "*") (cast_expression "(long *)(lVar5 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x58)" (( "(") (binary_expression "lVar5 + 0x58" (identifier "lVar5") (+ "+") (number_literal "0x58")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);" (assignment_expression "iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5])" (identifier "iVar7") (= "=") (call_expression "IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5])" (identifier "IsFuzzyEquivalencePixelInfo") (argument_list "(&local_98,lVar15 + param_1[5])" (( "(") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (binary_expression "lVar15 + param_1[5]" (identifier "lVar15") (+ "+") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);\n                  *pdVar12 = *pdVar12 + DAT_003f9608;\n                }" ({ "{") (expression_statement "pdVar12 = (double *)(local_e8 * 8 + param_1[4]);" (assignment_expression "pdVar12 = (double *)(local_e8 * 8 + param_1[4])" (identifier "pdVar12") (= "=") (cast_expression "(double *)(local_e8 * 8 + param_1[4])" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e8 * 8 + param_1[4])" (( "(") (binary_expression "local_e8 * 8 + param_1[4]" (binary_expression "local_e8 * 8" (identifier "local_e8") (* "*") (number_literal "8")) (+ "+") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) () ")")))) (; ";")) (expression_statement "*pdVar12 = *pdVar12 + DAT_003f9608;" (assignment_expression "*pdVar12 = *pdVar12 + DAT_003f9608" (pointer_expression "*pdVar12" (* "*") (identifier "pdVar12")) (= "=") (binary_expression "*pdVar12 + DAT_003f9608" (pointer_expression "*pdVar12" (* "*") (identifier "pdVar12")) (+ "+") (identifier "DAT_003f9608"))) (; ";")) (} "}"))) (expression_statement "lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;" (assignment_expression "lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4" (identifier "lVar10") (= "=") (binary_expression "lVar10 + *(long *)(puVar13 + 0xd0) * 4" (identifier "lVar10") (+ "+") (binary_expression "*(long *)(puVar13 + 0xd0) * 4" (pointer_expression "*(long *)(puVar13 + 0xd0)" (* "*") (cast_expression "(long *)(puVar13 + 0xd0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0xd0)" (( "(") (binary_expression "puVar13 + 0xd0" (identifier "puVar13") (+ "+") (number_literal "0xd0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "lVar14 = lVar14 + 1;" (assignment_expression "lVar14 = lVar14 + 1" (identifier "lVar14") (= "=") (binary_expression "lVar14 + 1" (identifier "lVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar14 < *(long *)(puVar13 + 8))" (( "(") (binary_expression "lVar14 < *(long *)(puVar13 + 8)" (identifier "lVar14") (< "<") (pointer_expression "*(long *)(puVar13 + 8)" (* "*") (cast_expression "(long *)(puVar13 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 8)" (( "(") (binary_expression "puVar13 + 8" (identifier "puVar13") (+ "+") (number_literal "8")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_100 < *(long *)(puVar13 + 10))" (( "(") (binary_expression "local_100 < *(long *)(puVar13 + 10)" (identifier "local_100") (< "<") (pointer_expression "*(long *)(puVar13 + 10)" (* "*") (cast_expression "(long *)(puVar13 + 10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 10)" (( "(") (binary_expression "puVar13 + 10" (identifier "puVar13") (+ "+") (number_literal "10")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "DestroyCacheView(uVar11);" (call_expression "DestroyCacheView(uVar11)" (identifier "DestroyCacheView") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "DestroyImage(puVar13);" (call_expression "DestroyImage(puVar13)" (identifier "DestroyImage") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (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 "lVar15 = lVar15 + 0x58;" (assignment_expression "lVar15 = lVar15 + 0x58" (identifier "lVar15") (= "=") (binary_expression "lVar15 + 0x58" (identifier "lVar15") (+ "+") (number_literal "0x58"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar9 != local_e8)" (( "(") (binary_expression "lVar9 != local_e8" (identifier "lVar9") (!= "!=") (identifier "local_e8")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "ComplianceType": Some values do not have unique names */
/* DWARF original prototype: void GetEdgeBackgroundColor._omp_fn.1(anon_struct_48_6_a27eb3c1 *
   param_0) */

void __thiscall function_1(void *this)

{
  char *var_18;
  type_1 *exception;
  type_2 *cache_view;
  type_3 *var_15;
  type_4 *pPVar1;
  type_5 var_6 [16];
  int iVar3;
  int var_8;
  type_6 var_25;
  long var_10;
  type_7 *var_16;
  type_3 *var_22;
  type_2 *cache_view_00;
  double *pdVar8;
  type_8 *var_14;
  long var_28;
  long var_12;
  long var_1;
  long var_29;
  long var_9;
  type_9 local_b8;
  type_10 local_98;
  long var_32;
  
  var_32 = *(long *)(var_1 + 0x28);
  iVar3 = var_2();
  var_8 = var_3();
  var_6._8_8_ = 0;
  var_6._0_8_ = var_4(var_5(4),8);
  var_6 = var_6 << 0x40 | var_7(4);
  var_10 = var_4(var_6 / var_5((long)iVar3),0);
  var_9 = var_4(var_6 % var_5((long)iVar3),0);
  if (var_8 < var_9) {
    var_10 = var_10 + 1;
    var_9 = 0;
  }
  var_9 = var_8 * var_10 + var_9;
  var_10 = var_10 + var_9;
  if (var_9 < var_10) {
    var_18 = *(char **)((long)this + 0x18);
    exception = *(type_1 **)((long)this + 0x10);
    cache_view = *(type_2 **)((long)this + 8);
                    /* WARNING: Load size is inaccurate */
    var_15 = *this;
    var_12 = var_9 * 0x58;
    do {
      *(type_11 *)(*(long *)((long)this + 0x20) + var_9 * 8) = 0;
      local_b8.width = 0;
      local_b8.height = 0;
      local_b8.x = 0;
      local_b8.y = 0;
      if (var_9 == 2) {
LAB_0015a297:
        local_b8.height = 0;
        var_11(cache_view,0,0,1,1,exception);
        local_b8.height = 1;
      }
      else if (var_9 != 3) {
        if (var_9 != 1) {
          var_11(cache_view,0,var_15->rows - 1,1,1,exception);
        }
        local_b8.height = 0;
        local_b8.width = (size_t)(var_9 != 1);
        var_11(cache_view,var_15->columns - 1,0,1,1,exception);
        local_b8.width = 1;
        goto LAB_0015a297;
      }
      local_b8.width = 0;
      var_16 = var_11
                         (cache_view,var_15->columns - 1,var_15->rows - 1,1,1,exception);
      local_b8.width = 0;
      local_b8.height = 1;
      var_14 = (type_8 *)(var_12 + *(long *)((long)this + 0x28));
      var_13(var_14,0,0x58);
      *var_14 = DirectClass;
      var_14[1] = 0x17;
      var_14[6] = 0x10;
      var_14[7] = UndefinedClass;
      var_14[2] = UndefinedClass;
      *(double *)(var_14 + 0x12) = DAT_003f95f8;
      if (var_15 != (type_3 *)0x0) {
        *var_14 = var_15->storage_class;
        var_14[1] = var_15->colorspace;
        *(double *)(var_14 + 4) = var_15->fuzz;
        *(size_t *)(var_14 + 6) = var_15->depth;
        var_14[2] = var_15->alpha_trait;
        if (var_16 != (type_7 *)0x0) {
          pPVar1 = var_15->channel_map;
          *(double *)(var_14 + 10) = (double)var_16[pPVar1->offset];
          *(double *)(var_14 + 0xc) = (double)var_16[pPVar1[1].offset];
          *(double *)(var_14 + 0xe) = (double)var_16[pPVar1[2].offset];
          if (pPVar1[3].traits != var_17) {
            *(double *)(var_14 + 0x10) = (double)var_16[pPVar1[3].offset];
          }
          if (pPVar1[4].traits != var_17) {
            *(double *)(var_14 + 0x12) = (double)var_16[pPVar1[4].offset];
            var_14[2] = 4;
          }
          if (pPVar1[5].traits != var_17) {
            *(double *)(var_14 + 0x14) = (double)var_16[pPVar1[5].offset];
          }
        }
      }
      if (var_18 != (char *)0x0) {
        var_19
                  (var_18,AllCompliance,(type_10 *)(var_12 + *(long *)((long)this + 0x28)),exception
                  );
      }
      var_20(var_15->columns,var_15->rows,SouthGravity,&local_b8);
      var_22 = var_21(var_15,&local_b8,exception);
      if (var_22 != (type_3 *)0x0) {
        cache_view_00 = var_23(var_22,exception);
        var_29 = 0;
        if (0 < (long)var_22->rows) {
          do {
            var_16 = var_11
                               (cache_view_00,0,var_29,var_22->columns,1,exception);
            if (var_16 == (type_7 *)0x0) break;
            var_28 = 0;
            if (0 < (long)var_22->columns) {
              do {
                var_13(&local_98,0,0x58);
                local_98.alpha = DAT_003f95f8;
                local_98.storage_class = var_22->storage_class;
                local_98.colorspace = var_22->colorspace;
                local_98.fuzz = var_22->fuzz;
                local_98.depth = var_22->depth;
                local_98.alpha_trait = var_22->alpha_trait;
                if (var_16 != (type_7 *)0x0) {
                  pPVar1 = var_22->channel_map;
                  local_98.red = (type_12)var_16[pPVar1->offset];
                  local_98.green = (type_12)var_16[pPVar1[1].offset];
                  local_98.blue = (type_12)var_16[pPVar1[2].offset];
                  if (pPVar1[3].traits != var_17) {
                    local_98.black = (type_12)var_16[pPVar1[3].offset];
                  }
                  if (pPVar1[4].traits != var_17) {
                    local_98.alpha = (type_12)var_16[pPVar1[4].offset];
                    local_98.alpha_trait = BlendPixelTrait;
                  }
                  if (pPVar1[5].traits != var_17) {
                    local_98.index = (type_12)var_16[pPVar1[5].offset];
                  }
                }
                var_25 = var_24
                                  (&local_98,(type_10 *)(var_12 + *(long *)((long)this + 0x28)));
                if (var_25 == var_26) {
                  pdVar8 = (double *)(var_9 * 8 + *(long *)((long)this + 0x20));
                  *pdVar8 = *pdVar8 + var_27;
                }
                var_16 = var_16 + var_22->number_channels;
                var_28 = var_28 + 1;
              } while (var_28 < (long)var_22->columns);
            }
            var_29 = var_29 + 1;
          } while (var_29 < (long)var_22->rows);
        }
        var_30(cache_view_00);
        var_31(var_22);
      }
      var_9 = var_9 + 1;
      var_12 = var_12 + 0x58;
    } while (var_10 != var_9);
  }
  if (var_32 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_33();
  }
  return;
}


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

void MASKED(undefined8 *param_1)

{
  long lVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined4 *puVar4;
  long lVar5;
  undefined1 auVar6 [16];
  int iVar7;
  int iVar8;
  long lVar9;
  long lVar10;
  undefined8 uVar11;
  double *pdVar12;
  undefined4 *puVar13;
  long lVar14;
  long lVar15;
  long in_FS_OFFSET;
  long local_100;
  long local_e8;
  ulong local_b8 [4];
  undefined4 local_98;
  undefined4 local_94;
  undefined4 local_90;
  undefined8 local_88;
  undefined8 local_80;
  double local_70;
  double local_68;
  double local_60;
  double local_58;
  double local_50;
  double local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar7 = omp_get_num_threads();
  iVar8 = omp_get_thread_num();
  auVar6._8_8_ = 0;
  auVar6._0_8_ = SUB168(SEXT816(4),8);
  auVar6 = auVar6 << 0x40 | ZEXT816(4);
  lVar9 = SUB168(auVar6 / SEXT816((long)iVar7),0);
  local_e8 = SUB168(auVar6 % SEXT816((long)iVar7),0);
  if (iVar8 < local_e8) {
    lVar9 = lVar9 + 1;
    local_e8 = 0;
  }
  local_e8 = iVar8 * lVar9 + local_e8;
  lVar9 = lVar9 + local_e8;
  if (local_e8 < lVar9) {
    lVar1 = param_1[3];
    uVar2 = param_1[2];
    uVar3 = param_1[1];
    puVar4 = (undefined4 *)*param_1;
    lVar15 = local_e8 * 0x58;
    do {
      *(undefined8 *)(param_1[4] + local_e8 * 8) = 0;
      local_b8[0] = 0;
      local_b8[1] = 0;
      local_b8[2] = 0;
      local_b8[3] = 0;
      if (local_e8 == 2) {
LAB_0015a297:
        local_b8[1] = 0;
        GetCacheViewVirtualPixels(uVar3,0,0,1,1,uVar2);
        local_b8[1] = 1;
      }
      else if (local_e8 != 3) {
        if (local_e8 != 1) {
          GetCacheViewVirtualPixels(uVar3,0,*(long *)(puVar4 + 10) + -1,1,1,uVar2);
        }
        local_b8[1] = 0;
        local_b8[0] = (ulong)(local_e8 != 1);
        GetCacheViewVirtualPixels(uVar3,*(long *)(puVar4 + 8) + -1,0,1,1,uVar2);
        local_b8[0] = 1;
        goto LAB_0015a297;
      }
      local_b8[0] = 0;
      lVar10 = GetCacheViewVirtualPixels
                         (uVar3,*(long *)(puVar4 + 8) + -1,*(long *)(puVar4 + 10) + -1,1,1,uVar2);
      local_b8[0] = 0;
      local_b8[1] = 1;
      puVar13 = (undefined4 *)(lVar15 + param_1[5]);
      ResetMagickMemory(puVar13,0,0x58);
      *puVar13 = 1;
      puVar13[1] = 0x17;
      *(undefined8 *)(puVar13 + 6) = 0x10;
      puVar13[2] = 0;
      *(double *)(puVar13 + 0x12) = DAT_003f95f8;
      if (puVar4 != (undefined4 *)0x0) {
        *puVar13 = *puVar4;
        puVar13[1] = puVar4[1];
        *(undefined8 *)(puVar13 + 4) = *(undefined8 *)(puVar4 + 0xa6);
        *(undefined8 *)(puVar13 + 6) = *(undefined8 *)(puVar4 + 0xc);
        puVar13[2] = puVar4[0xcf];
        if (lVar10 != 0) {
          lVar14 = *(long *)(puVar4 + 0xd8);
          *(double *)(puVar13 + 10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 8) * 4);
          *(double *)(puVar13 + 0xc) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x18) * 4);
          *(double *)(puVar13 + 0xe) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x28) * 4);
          if (*(int *)(lVar14 + 0x34) != 0) {
            *(double *)(puVar13 + 0x10) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x38) * 4);
          }
          if (*(int *)(lVar14 + 0x44) != 0) {
            *(double *)(puVar13 + 0x12) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x48) * 4);
            puVar13[2] = 4;
          }
          if (*(int *)(lVar14 + 0x54) != 0) {
            *(double *)(puVar13 + 0x14) = (double)*(float *)(lVar10 + *(long *)(lVar14 + 0x58) * 4);
          }
        }
      }
      if (lVar1 != 0) {
        QueryColorCompliance(lVar1,0x7fffffff,lVar15 + param_1[5],uVar2);
      }
      GravityAdjustGeometry(*(undefined8 *)(puVar4 + 8),*(undefined8 *)(puVar4 + 10),8,local_b8);
      puVar13 = (undefined4 *)CropImage(puVar4,local_b8,uVar2);
      if (puVar13 != (undefined4 *)0x0) {
        uVar11 = AcquireVirtualCacheView(puVar13,uVar2);
        local_100 = 0;
        if (0 < *(long *)(puVar13 + 10)) {
          do {
            lVar10 = GetCacheViewVirtualPixels
                               (uVar11,0,local_100,*(undefined8 *)(puVar13 + 8),1,uVar2);
            if (lVar10 == 0) break;
            lVar14 = 0;
            if (0 < *(long *)(puVar13 + 8)) {
              do {
                ResetMagickMemory(&local_98,0,0x58);
                local_50 = DAT_003f95f8;
                local_98 = *puVar13;
                local_94 = puVar13[1];
                local_88 = *(undefined8 *)(puVar13 + 0xa6);
                local_80 = *(undefined8 *)(puVar13 + 0xc);
                local_90 = puVar13[0xcf];
                if (lVar10 != 0) {
                  lVar5 = *(long *)(puVar13 + 0xd8);
                  local_70 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 8) * 4);
                  local_68 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x18) * 4);
                  local_60 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x28) * 4);
                  if (*(int *)(lVar5 + 0x34) != 0) {
                    local_58 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x38) * 4);
                  }
                  if (*(int *)(lVar5 + 0x44) != 0) {
                    local_50 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x48) * 4);
                    local_90 = 4;
                  }
                  if (*(int *)(lVar5 + 0x54) != 0) {
                    local_48 = (double)*(float *)(lVar10 + *(long *)(lVar5 + 0x58) * 4);
                  }
                }
                iVar7 = IsFuzzyEquivalencePixelInfo(&local_98,lVar15 + param_1[5]);
                if (iVar7 == 0) {
                  pdVar12 = (double *)(local_e8 * 8 + param_1[4]);
                  *pdVar12 = *pdVar12 + DAT_003f9608;
                }
                lVar10 = lVar10 + *(long *)(puVar13 + 0xd0) * 4;
                lVar14 = lVar14 + 1;
              } while (lVar14 < *(long *)(puVar13 + 8));
            }
            local_100 = local_100 + 1;
          } while (local_100 < *(long *)(puVar13 + 10));
        }
        DestroyCacheView(uVar11);
        DestroyImage(puVar13);
      }
      local_e8 = local_e8 + 1;
      lVar15 = lVar15 + 0x58;
    } while (lVar9 != local_e8);
  }
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}

