
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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 */
/* DWARF original prototype: void PolynomialImage._omp_fn.5(anon_struct_40_10_b450a9d0 * param_0) */

void __thiscall PolynomialImage__omp_fn_5(anon_struct_40_10_b450a9d0 *this)

{
  longlong lVar1;
  double dVar2;
  Image *pIVar3;
  size_t sVar4;
  PixelChannels **ppPVar5;
  CacheView *cache_view;
  ExceptionInfo *exception;
  double *pdVar6;
  size_t sVar7;
  Image *image;
  double *pdVar8;
  PixelChannelMap *pPVar9;
  PixelChannel PVar10;
  PixelTrait PVar11;
  uint *puVar12;
  float fVar13;
  int iVar14;
  int iVar15;
  double *pdVar16;
  CacheView *cache_view_00;
  size_t sVar17;
  Image *image_00;
  PixelChannelMap *pPVar18;
  MagickBooleanType MVar19;
  uint uVar20;
  uint uVar21;
  double *pdVar22;
  bool bVar23;
  double dVar24;
  size_t local_68;
  Quantum *local_64;
  int local_5c;
  double *local_58;
  int local_54;
  int local_50;
  double *local_4c;
  
  local_50 = omp_get_num_threads();
  iVar14 = omp_get_thread_num();
  pIVar3 = this->image;
  iVar15 = (int)pIVar3->rows / local_50;
  local_50 = (int)pIVar3->rows % local_50;
  if (iVar14 < local_50) {
    iVar15 = iVar15 + 1;
    local_50 = 0;
  }
  local_50 = iVar14 * iVar15 + local_50;
  iVar15 = iVar15 + local_50;
  if (local_50 < iVar15) {
    sVar4 = this->number_images;
    ppPVar5 = this->polynomial_pixels;
    cache_view = this->polynomial_view;
    exception = this->exception;
    pdVar6 = this->terms;
    sVar7 = this->number_terms;
    image = this->images;
    do {
      iVar14 = omp_get_thread_num();
      if (this->status != MagickFalse) {
        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);
        if (local_4c == (Quantum *)0x0) {
LAB_0018f4d1:
          this->status = MagickFalse;
        }
        else {
          pdVar8 = ppPVar5[iVar14]->channel;
          local_68 = pIVar3->columns;
          if ((int)local_68 < 1) {
            if (0 < (int)sVar4) goto LAB_0018f1eb;
          }
          else {
            pdVar16 = pdVar8;
            do {
              pdVar22 = pdVar16 + 0x40;
              do {
                *pdVar16 = 0.0;
                pdVar16 = pdVar16 + 1;
              } while (pdVar22 != pdVar16);
            } while (pdVar8 + local_68 * 0x40 != pdVar22);
            if (0 < (int)sVar4) {
LAB_0018f1eb:
              local_54 = 0;
              image_00 = image;
              local_58 = pdVar6;
              do {
                if (local_54 < (int)sVar7) {
                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);
                  local_64 = GetCacheViewVirtualPixels
                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);
                  if (local_64 == (Quantum *)0x0) {
                    DestroyCacheView(cache_view_00);
                    break;
                  }
                  if (0 < (int)pIVar3->columns) {
                    local_5c = 0;
                    pdVar16 = pdVar8;
                    do {
                      sVar17 = image_00->number_channels;
                      iVar14 = 0;
                      if (0 < (int)sVar17) {
                        do {
                          pPVar9 = pIVar3->channel_map;
                          PVar10 = pPVar9[iVar14].channel;
                          PVar11 = image_00->channel_map[PVar10].traits;
                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&
                              (PVar11 != UndefinedPixelTrait)) &&
                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {
                            dVar2 = *local_58;
                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]
                                        );
                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];
                          }
                          sVar17 = image_00->number_channels;
                          iVar14 = iVar14 + 1;
                        } while (iVar14 < (int)sVar17);
                      }
                      pdVar16 = pdVar16 + 0x40;
                      local_5c = local_5c + 1;
                      local_64 = local_64 + sVar17;
                    } while (local_5c < (int)pIVar3->columns);
                  }
                  DestroyCacheView(cache_view_00);
                  image_00 = GetNextImageInList(image_00);
                }
                local_54 = local_54 + 1;
                local_58 = local_58 + 2;
              } while (local_54 < (int)sVar4);
              local_68 = pIVar3->columns;
              if ((int)local_68 < 1) goto LAB_0018f43c;
            }
            fVar13 = DAT_0029f710;
            sVar17 = pIVar3->number_channels;
            iVar14 = 0;
            do {
              if (0 < (int)sVar17) {
                pPVar9 = pIVar3->channel_map;
                pPVar18 = pPVar9;
                pdVar16 = pdVar8;
                pdVar22 = local_4c;
                do {
                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&
                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))
                  {
                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);
                  }
                  pPVar18 = pPVar18 + 1;
                  pdVar16 = pdVar16 + 1;
                  pdVar22 = pdVar22 + 1;
                } while (pPVar9 + sVar17 != pPVar18);
              }
              iVar14 = iVar14 + 1;
              local_4c = local_4c + sVar17;
              pdVar8 = pdVar8 + 0x40;
            } while (iVar14 < (int)local_68);
          }
LAB_0018f43c:
          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);
          if (MVar19 == MagickFalse) {
            this->status = MagickFalse;
          }
          if (image->progress_monitor != (MagickProgressMonitor)0x0) {
            puVar12 = (uint *)this->progress;
            uVar20 = *puVar12;
            uVar21 = puVar12[1];
            do {
              LOCK();
              lVar1 = *(longlong *)puVar12;
              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;
              if (bVar23) {
                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);
              }
              else {
                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);
                uVar20 = (uint)lVar1;
              }
              UNLOCK();
            } while (!bVar23);
            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,
                                      (ulonglong)pIVar3->rows);
            if (MVar19 == MagickFalse) goto LAB_0018f4d1;
          }
        }
      }
      local_50 = local_50 + 1;
    } while (iVar15 != local_50);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0018f080(int *param_1)

{
  longlong lVar1;
  double dVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  double *pdVar7;
  int iVar8;
  int iVar9;
  double *pdVar10;
  int *piVar11;
  uint *puVar12;
  float fVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  double *pdVar17;
  undefined4 uVar18;
  int iVar19;
  int *piVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  double *pdVar24;
  int iVar25;
  bool bVar26;
  double dVar27;
  int local_68;
  int local_64;
  int local_5c;
  double *local_58;
  int local_54;
  int local_50;
  double *local_4c;
  
  local_50 = omp_get_num_threads();
  iVar14 = omp_get_thread_num();
  iVar3 = param_1[5];
  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;
  local_50 = *(int *)(iVar3 + 0x1c) % local_50;
  if (iVar14 < local_50) {
    iVar15 = iVar15 + 1;
    local_50 = 0;
  }
  local_50 = iVar14 * iVar15 + local_50;
  iVar15 = iVar15 + local_50;
  if (local_50 < iVar15) {
    iVar14 = param_1[7];
    iVar4 = param_1[6];
    iVar5 = param_1[4];
    iVar6 = param_1[3];
    pdVar7 = (double *)param_1[2];
    iVar8 = param_1[1];
    iVar9 = *param_1;
    do {
      iVar16 = omp_get_thread_num();
      if (param_1[8] != 0) {
        local_4c = (double *)
                   QueueCacheViewAuthenticPixels
                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);
        if (local_4c == (double *)0x0) {
LAB_0018f4d1:
          param_1[8] = 0;
        }
        else {
          pdVar10 = *(double **)(iVar4 + iVar16 * 4);
          local_68 = *(int *)(iVar3 + 0x18);
          if (local_68 < 1) {
            if (0 < iVar14) goto LAB_0018f1eb;
          }
          else {
            pdVar17 = pdVar10;
            do {
              pdVar24 = pdVar17 + 0x40;
              do {
                *pdVar17 = 0.0;
                pdVar17 = pdVar17 + 1;
              } while (pdVar24 != pdVar17);
            } while (pdVar10 + local_68 * 0x40 != pdVar24);
            if (0 < iVar14) {
LAB_0018f1eb:
              local_54 = 0;
              iVar16 = iVar9;
              local_58 = pdVar7;
              do {
                if (local_54 < iVar8) {
                  uVar18 = AcquireVirtualCacheView(iVar16);
                  local_64 = GetCacheViewVirtualPixels
                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);
                  if (local_64 == 0) {
                    DestroyCacheView(uVar18);
                    break;
                  }
                  if (0 < *(int *)(iVar3 + 0x18)) {
                    local_5c = 0;
                    pdVar17 = pdVar10;
                    do {
                      iVar19 = *(int *)(iVar16 + 0x298);
                      iVar25 = 0;
                      if (0 < iVar19) {
                        do {
                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;
                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;
                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);
                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))
                          {
                            dVar2 = *local_58;
                            dVar27 = pow(_DAT_0029f148 *
                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),
                                         local_58[1]);
                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];
                          }
                          iVar19 = *(int *)(iVar16 + 0x298);
                          iVar25 = iVar25 + 1;
                        } while (iVar25 < iVar19);
                      }
                      pdVar17 = pdVar17 + 0x40;
                      local_5c = local_5c + 1;
                      local_64 = local_64 + iVar19 * 8;
                    } while (local_5c < *(int *)(iVar3 + 0x18));
                  }
                  DestroyCacheView(uVar18);
                  iVar16 = GetNextImageInList(iVar16);
                }
                local_54 = local_54 + 1;
                local_58 = local_58 + 2;
              } while (local_54 < iVar14);
              local_68 = *(int *)(iVar3 + 0x18);
              if (local_68 < 1) goto LAB_0018f43c;
            }
            fVar13 = DAT_0029f710;
            iVar16 = *(int *)(iVar3 + 0x298);
            iVar19 = 0;
            do {
              if (0 < iVar16) {
                piVar11 = *(int **)(iVar3 + 0x2a8);
                piVar20 = piVar11;
                pdVar17 = pdVar10;
                pdVar24 = local_4c;
                do {
                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {
                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);
                  }
                  piVar20 = piVar20 + 3;
                  pdVar17 = pdVar17 + 1;
                  pdVar24 = pdVar24 + 1;
                } while (piVar11 + iVar16 * 3 != piVar20);
              }
              iVar19 = iVar19 + 1;
              local_4c = local_4c + iVar16;
              pdVar10 = pdVar10 + 0x40;
            } while (iVar19 < local_68);
          }
LAB_0018f43c:
          iVar16 = SyncCacheViewAuthenticPixels();
          if (iVar16 == 0) {
            param_1[8] = 0;
          }
          if (*(int *)(iVar9 + 0x300) != 0) {
            puVar12 = (uint *)param_1[9];
            uVar21 = *puVar12;
            uVar23 = puVar12[1];
            do {
              LOCK();
              lVar1 = *(longlong *)puVar12;
              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;
              if (bVar26) {
                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);
              }
              else {
                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);
                uVar21 = (uint)lVar1;
              }
              UNLOCK();
            } while (!bVar26);
            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],
                                      ((undefined4 *)param_1[9])[1]);
            if (iVar16 == 0) goto LAB_0018f4d1;
          }
        }
      }
      local_50 = local_50 + 1;
    } while (iVar15 != local_50);
  }
  return;
}


CALL 0x0003bf88
ADD EAX,0x249f7b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x6c
MOV EDI,dword ptr [ESP + 0x80]
MOV EBX,EAX
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x00030850
MOV ESI,EAX
CALL 0x000317c0
MOV EDI,dword ptr [EDI + 0x14]
MOV ECX,EAX
MOV EAX,dword ptr [EDI + 0x1c]
CDQ
IDIV ESI
CMP ECX,EDX
JGE 0x0018f0be
ADD EAX,0x1
XOR EDX,EDX
IMUL ECX,EAX
LEA ESI,[ECX + EDX*0x1]
MOV ECX,EAX
ADD ECX,ESI
MOV dword ptr [ESP + 0x2c],ESI
CMP ESI,ECX
MOV dword ptr [ESP + 0x48],ECX
JGE 0x0018f4f2
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0x54],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x58],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [ESP + 0x1c]
LEA EAX,[EAX + 0xffeef4b9]
MOV dword ptr [ESP + 0x5c],EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x000317c0
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV EBP,dword ptr [EAX + 0x20]
TEST EBP,EBP
JZ 0x0018f4df
SUB ESP,0x8
PUSH dword ptr [ESP + 0x44]
PUSH 0x1
PUSH dword ptr [EDI + 0x18]
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
PUSH dword ptr [ESP + 0x68]
MOV EBP,dword ptr [ESP + 0x3c]
MOV EBX,EBP
CALL 0x000339a0
MOV dword ptr [ESP + 0x50],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0018f4d1
MOV EAX,dword ptr [ESP + 0x54]
MOV EBX,dword ptr [EAX + ESI*0x4]
MOV ESI,dword ptr [EDI + 0x18]
MOV dword ptr [ESP + 0x44],EBX
TEST ESI,ESI
MOV dword ptr [ESP + 0x14],ESI
JLE 0x0018f4fa
FLDZ
SHL ESI,0x9
MOV EAX,EBX
MOV ECX,ESI
ADD ECX,EBX
LEA ESI,[ESI]
LEA EDX,[EAX + 0x200]
LEA ESI,[ESI]
LEA EDI,[EDI]
FST qword ptr [EAX]
ADD EAX,0x8
CMP EDX,EAX
JNZ 0x0018f1d0
CMP ECX,EDX
JNZ 0x0018f1c0
FSTP ST0
MOV EDX,dword ptr [ESP + 0x34]
TEST EDX,EDX
JLE 0x0018f391
MOV EAX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x28],0x0
MOV ESI,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0018f220
ADD dword ptr [ESP + 0x28],0x1
ADD dword ptr [ESP + 0x24],0x10
MOV EAX,dword ptr [ESP + 0x28]
CMP EAX,dword ptr [ESP + 0x34]
JGE 0x0018f382
MOV ECX,dword ptr [ESP + 0x38]
CMP dword ptr [ESP + 0x28],ECX
JGE 0x0018f208
SUB ESP,0x8
PUSH dword ptr [ESP + 0x44]
PUSH ESI
MOV EBP,dword ptr [ESP + 0x2c]
MOV EBX,EBP
CALL 0x00030eb0
MOV dword ptr [ESP + 0x50],EAX
POP EBP
POP EDX
PUSH dword ptr [ESP + 0x44]
PUSH 0x1
PUSH dword ptr [EDI + 0x18]
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
PUSH EAX
CALL 0x00031280
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0018f36f
MOV ECX,dword ptr [EDI + 0x18]
TEST ECX,ECX
JLE 0x0018f34b
MOV ECX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x20],0x0
MOV EAX,ECX
MOV ECX,EDI
MOV EDI,EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0x298]
XOR EBP,EBP
TEST EAX,EAX
JLE 0x0018f326
MOV EAX,EDI
MOV EDI,ECX
MOV ECX,EAX
NOP
MOV EAX,dword ptr [EDI + 0x2a8]
LEA EDX,[EBP + EBP*0x2]
MOV EBX,dword ptr [ESI + 0x2a8]
MOV EDX,dword ptr [EAX + EDX*0x4]
LEA EDX,[EDX + EDX*0x2]
SHL EDX,0x2
ADD EAX,EDX
MOV EBX,dword ptr [EBX + EDX*0x1 + 0x4]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x0018f313
TEST EBX,EBX
JZ 0x0018f313
AND EBX,0x2
JZ 0x0018f313
MOV dword ptr [ESP + 0x14],ECX
MOV ECX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0x8]
FLD qword ptr [ECX]
FSTP qword ptr [ESP + 0x8]
PUSH dword ptr [ECX + 0xc]
PUSH dword ptr [ECX + 0x8]
MOV EBX,dword ptr [ESP + 0x24]
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x28]
FLD qword ptr [EBX + 0xffec6148]
FMUL qword ptr [ECX + EAX*0x8]
FSTP qword ptr [ESP]
CALL 0x00030f90
MOV ECX,dword ptr [ESP + 0x24]
FMUL qword ptr [ESP + 0x18]
ADD ESP,0x10
FADD qword ptr [ECX + EBP*0x8]
FSTP qword ptr [ECX + EBP*0x8]
MOV EAX,dword ptr [ESI + 0x298]
ADD EBP,0x1
CMP EAX,EBP
JG 0x0018f2a0
MOV EBX,ECX
MOV ECX,EDI
MOV EDI,EBX
MOV EBX,dword ptr [ESP + 0x18]
ADD EDI,0x200
ADD dword ptr [ESP + 0x20],0x1
LEA EAX,[EBX + EAX*0x8]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x20]
CMP dword ptr [ECX + 0x18],EAX
JG 0x0018f288
MOV EDI,ECX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x4c]
MOV EBP,dword ptr [ESP + 0x2c]
MOV EBX,EBP
CALL 0x00032f30
MOV dword ptr [ESP],ESI
CALL 0x000319e0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x0018f208
SUB ESP,0xc
PUSH dword ptr [ESP + 0x4c]
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x00032f30
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x18]
TEST EAX,EAX
MOV dword ptr [ESP + 0x14],EAX
JLE 0x0018f43c
MOV ESI,dword ptr [EDI + 0x298]
XOR EBP,EBP
MOV dword ptr [ESP + 0x24],EDI
MOV EAX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x20],ESI
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[ESI + ESI*0x2]
SHL EAX,0x2
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[ESI*0x8 + 0x0]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x1c]
FLD dword ptr [EAX + 0xffec6710]
NOP
LEA ESI,[ESI]
MOV EBX,dword ptr [ESP + 0x20]
TEST EBX,EBX
JLE 0x0018f41d
MOV EAX,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESP + 0x28]
MOV EBX,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [EAX + 0x2a8]
MOV EAX,ESI
ADD EDI,ESI
LEA ESI,[ESI]
MOV EDX,dword ptr [EAX]
LEA EDX,[EDX + EDX*0x2]
MOV EDX,dword ptr [ESI + EDX*0x4 + 0x4]
TEST EDX,EDX
JZ 0x0018f410
AND EDX,0x2
JZ 0x0018f410
FLD ST0
FMUL qword ptr [ECX]
FSTP qword ptr [EBX]
ADD EAX,0xc
ADD ECX,0x8
ADD EBX,0x8
CMP EDI,EAX
JNZ 0x0018f3f8
MOV EDI,dword ptr [ESP + 0x18]
ADD EBP,0x1
ADD dword ptr [ESP + 0x30],EDI
ADD dword ptr [ESP + 0x8],0x200
CMP dword ptr [ESP + 0x14],EBP
JG 0x0018f3d0
FSTP ST0
MOV EDI,dword ptr [ESP + 0x24]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x58]
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x00031800
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0018f465
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [EAX + 0x20],0x0
MOV EAX,dword ptr [ESP + 0x50]
MOV ECX,dword ptr [EAX + 0x300]
TEST ECX,ECX
JZ 0x0018f4df
MOV EAX,dword ptr [ESP + 0x80]
MOV ESI,dword ptr [EAX + 0x24]
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [ESI + 0x4]
MOV ECX,EAX
MOV EBX,EDX
ADD ECX,0x1
ADC EBX,0x0
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0xc],EBX
MOV EBX,ECX
MOV ECX,dword ptr [ESP + 0xc]
CMPXCHG8B.LOCK qword ptr [ESI]
JNZ 0x0018f482
MOV EAX,dword ptr [EDI + 0x1c]
SUB ESP,0x8
XOR EDX,EDX
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x90]
MOV EAX,dword ptr [EAX + 0x24]
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH dword ptr [ESP + 0x74]
PUSH dword ptr [ESP + 0x6c]
MOV EBX,dword ptr [ESP + 0x3c]
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0018f4df
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [EAX + 0x20],0x0
ADD dword ptr [ESP + 0x2c],0x1
MOV EAX,dword ptr [ESP + 0x2c]
CMP dword ptr [ESP + 0x48],EAX
JNZ 0x0018f147
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JG 0x0018f1eb
JMP 0x0018f43c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0018f080(int *param_1)\n\n{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}\n\n" comment comment (function_definition "void FUN_0018f080(int *param_1)\n\n{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0018f080(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "double *pdVar24;" primitive_type (pointer_declarator "*pdVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "double *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "double *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (expression_statement "local_50 = omp_get_num_threads();" (assignment_expression "local_50 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar14 = omp_get_thread_num();" (assignment_expression "iVar14 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = *(int *)(iVar3 + 0x1c) / local_50;" (assignment_expression "iVar15 = *(int *)(iVar3 + 0x1c) / local_50" identifier = (binary_expression "*(int *)(iVar3 + 0x1c) / local_50" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "local_50 = *(int *)(iVar3 + 0x1c) % local_50;" (assignment_expression "local_50 = *(int *)(iVar3 + 0x1c) % local_50" identifier = (binary_expression "*(int *)(iVar3 + 0x1c) % local_50" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" if (parenthesized_expression "(iVar14 < local_50)" ( (binary_expression "iVar14 < local_50" identifier < identifier) )) (compound_statement "{\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) })) (expression_statement "local_50 = iVar14 * iVar15 + local_50;" (assignment_expression "local_50 = iVar14 * iVar15 + local_50" identifier = (binary_expression "iVar14 * iVar15 + local_50" (binary_expression "iVar14 * iVar15" identifier * identifier) + identifier)) ;) (expression_statement "iVar15 = iVar15 + local_50;" (assignment_expression "iVar15 = iVar15 + local_50" identifier = (binary_expression "iVar15 + local_50" identifier + identifier)) ;) (if_statement "if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" if (parenthesized_expression "(local_50 < iVar15)" ( (binary_expression "local_50 < iVar15" identifier < identifier) )) (compound_statement "{\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" { (expression_statement "iVar14 = param_1[7];" (assignment_expression "iVar14 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_1[6];" (assignment_expression "iVar4 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = param_1[4];" (assignment_expression "iVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = param_1[3];" (assignment_expression "iVar6 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "pdVar7 = (double *)param_1[2];" (assignment_expression "pdVar7 = (double *)param_1[2]" identifier = (cast_expression "(double *)param_1[2]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = *param_1;" (assignment_expression "iVar9 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (do_statement "do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);" do (compound_statement "{\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    }" { (expression_statement "iVar16 = omp_get_thread_num();" (assignment_expression "iVar16 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }" { (expression_statement "local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);" (assignment_expression "local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" identifier = (cast_expression "(double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" identifier (argument_list "(iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (if_statement "if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" if (parenthesized_expression "(local_4c == (double *)0x0)" ( (binary_expression "local_4c == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }" { (labeled_statement "LAB_0018f4d1:\n          param_1[8] = 0;" statement_identifier : (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" else (compound_statement "{\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" { (expression_statement "pdVar10 = *(double **)(iVar4 + iVar16 * 4);" (assignment_expression "pdVar10 = *(double **)(iVar4 + iVar16 * 4)" identifier = (pointer_expression "*(double **)(iVar4 + iVar16 * 4)" * (cast_expression "(double **)(iVar4 + iVar16 * 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + iVar16 * 4)" ( (binary_expression "iVar4 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal)) ))))) ;) (expression_statement "local_68 = *(int *)(iVar3 + 0x18);" (assignment_expression "local_68 = *(int *)(iVar3 + 0x18)" identifier = (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" if (parenthesized_expression "(local_68 < 1)" ( (binary_expression "local_68 < 1" identifier < number_literal) )) (compound_statement "{\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }" { (if_statement "if (0 < iVar14) goto LAB_0018f1eb;" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (goto_statement "goto LAB_0018f1eb;" goto statement_identifier ;)) }) (else_clause "else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" else (compound_statement "{\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" { (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) (do_statement "do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);" do (compound_statement "{\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            }" { (expression_statement "pdVar24 = pdVar17 + 0x40;" (assignment_expression "pdVar24 = pdVar17 + 0x40" identifier = (binary_expression "pdVar17 + 0x40" identifier + number_literal)) ;) (do_statement "do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);" do (compound_statement "{\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              }" { (expression_statement "*pdVar17 = 0.0;" (assignment_expression "*pdVar17 = 0.0" (pointer_expression "*pdVar17" * identifier) = number_literal) ;) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar24 != pdVar17)" ( (binary_expression "pdVar24 != pdVar17" identifier != identifier) )) ;) }) while (parenthesized_expression "(pdVar10 + local_68 * 0x40 != pdVar24)" ( (binary_expression "pdVar10 + local_68 * 0x40 != pdVar24" (binary_expression "pdVar10 + local_68 * 0x40" identifier + (binary_expression "local_68 * 0x40" identifier * number_literal)) != identifier) )) ;) (if_statement "if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }" { (labeled_statement "LAB_0018f1eb:\n              local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) (expression_statement "iVar16 = iVar9;" (assignment_expression "iVar16 = iVar9" identifier = identifier) ;) (expression_statement "local_58 = pdVar7;" (assignment_expression "local_58 = pdVar7" identifier = identifier) ;) (do_statement "do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);" do (compound_statement "{\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              }" { (if_statement "if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }" if (parenthesized_expression "(local_54 < iVar8)" ( (binary_expression "local_54 < iVar8" identifier < identifier) )) (compound_statement "{\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }" { (expression_statement "uVar18 = AcquireVirtualCacheView(iVar16);" (assignment_expression "uVar18 = AcquireVirtualCacheView(iVar16)" identifier = (call_expression "AcquireVirtualCacheView(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) (expression_statement "local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);" (assignment_expression "local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" identifier = (call_expression "GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" identifier (argument_list "(uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n                    DestroyCacheView(uVar18);\n                    break;\n                  }" { (expression_statement "DestroyCacheView(uVar18);" (call_expression "DestroyCacheView(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) (break_statement "break;" break ;) })) (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x18))" ( (binary_expression "0 < *(int *)(iVar3 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) (do_statement "do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));" do (compound_statement "{\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    }" { (expression_statement "iVar19 = *(int *)(iVar16 + 0x298);" (assignment_expression "iVar19 = *(int *)(iVar16 + 0x298)" identifier = (pointer_expression "*(int *)(iVar16 + 0x298)" * (cast_expression "(int *)(iVar16 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x298)" ( (binary_expression "iVar16 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }" { (do_statement "do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);" do (compound_statement "{\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        }" { (expression_statement "iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;" (assignment_expression "iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc" identifier = (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" ( (binary_expression "*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + (binary_expression "iVar25 * 0xc" identifier * number_literal)) )))) * number_literal)) ;) (expression_statement "iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;" (assignment_expression "iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22" identifier = (binary_expression "*(int *)(iVar3 + 0x2a8) + iVar22" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);" (assignment_expression "uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" * (cast_expression "(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" ( (binary_expression "*(int *)(iVar16 + 0x2a8) + 4 + iVar22" (binary_expression "*(int *)(iVar16 + 0x2a8) + 4" (pointer_expression "*(int *)(iVar16 + 0x2a8)" * (cast_expression "(int *)(iVar16 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x2a8)" ( (binary_expression "iVar16 + 0x2a8" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (if_statement "if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }" if (parenthesized_expression "(((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))" ( (binary_expression "((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0)" (parenthesized_expression "((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0))" ( (binary_expression "(*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)" (parenthesized_expression "(*(int *)(iVar19 + 4) != 0)" ( (binary_expression "*(int *)(iVar19 + 4) != 0" (pointer_expression "*(int *)(iVar19 + 4)" * (cast_expression "(int *)(iVar19 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }" { (expression_statement "dVar2 = *local_58;" (assignment_expression "dVar2 = *local_58" identifier = (pointer_expression "*local_58" * identifier)) ;) (expression_statement "dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);" (assignment_expression "dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" identifier = (call_expression "pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" identifier (argument_list "(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" ( (binary_expression "_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" identifier * (pointer_expression "*(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" * (cast_expression "(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + *(int *)(iVar19 + 8) * 8)" ( (binary_expression "local_64 + *(int *)(iVar19 + 8) * 8" identifier + (binary_expression "*(int *)(iVar19 + 8) * 8" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) * number_literal)) ))))) , (subscript_expression "local_58[1]" identifier [ number_literal ]) )))) ;) (expression_statement "pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];" (assignment_expression "pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25]" (subscript_expression "pdVar17[iVar25]" identifier [ identifier ]) = (binary_expression "dVar27 * dVar2 + pdVar17[iVar25]" (binary_expression "dVar27 * dVar2" identifier * identifier) + (subscript_expression "pdVar17[iVar25]" identifier [ identifier ]))) ;) })) (expression_statement "iVar19 = *(int *)(iVar16 + 0x298);" (assignment_expression "iVar19 = *(int *)(iVar16 + 0x298)" identifier = (pointer_expression "*(int *)(iVar16 + 0x298)" * (cast_expression "(int *)(iVar16 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x298)" ( (binary_expression "iVar16 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < iVar19)" ( (binary_expression "iVar25 < iVar19" identifier < identifier) )) ;) })) (expression_statement "pdVar17 = pdVar17 + 0x40;" (assignment_expression "pdVar17 = pdVar17 + 0x40" identifier = (binary_expression "pdVar17 + 0x40" identifier + number_literal)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "local_64 = local_64 + iVar19 * 8;" (assignment_expression "local_64 = local_64 + iVar19 * 8" identifier = (binary_expression "local_64 + iVar19 * 8" identifier + (binary_expression "iVar19 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(local_5c < *(int *)(iVar3 + 0x18))" ( (binary_expression "local_5c < *(int *)(iVar3 + 0x18)" identifier < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "DestroyCacheView(uVar18);" (call_expression "DestroyCacheView(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) (expression_statement "iVar16 = GetNextImageInList(iVar16);" (assignment_expression "iVar16 = GetNextImageInList(iVar16)" identifier = (call_expression "GetNextImageInList(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) })) (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "local_58 = local_58 + 2;" (assignment_expression "local_58 = local_58 + 2" identifier = (binary_expression "local_58 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_54 < iVar14)" ( (binary_expression "local_54 < iVar14" identifier < identifier) )) ;) (expression_statement "local_68 = *(int *)(iVar3 + 0x18);" (assignment_expression "local_68 = *(int *)(iVar3 + 0x18)" identifier = (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (local_68 < 1) goto LAB_0018f43c;" if (parenthesized_expression "(local_68 < 1)" ( (binary_expression "local_68 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0018f43c;" goto statement_identifier ;)) })) (expression_statement "fVar13 = DAT_0029f710;" (assignment_expression "fVar13 = DAT_0029f710" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(iVar3 + 0x298);" (assignment_expression "iVar16 = *(int *)(iVar3 + 0x298)" identifier = (pointer_expression "*(int *)(iVar3 + 0x298)" * (cast_expression "(int *)(iVar3 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x298)" ( (binary_expression "iVar3 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);" do (compound_statement "{\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            }" { (if_statement "if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }" { (expression_statement "piVar11 = *(int **)(iVar3 + 0x2a8);" (assignment_expression "piVar11 = *(int **)(iVar3 + 0x2a8)" identifier = (pointer_expression "*(int **)(iVar3 + 0x2a8)" * (cast_expression "(int **)(iVar3 + 0x2a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = piVar11;" (assignment_expression "piVar20 = piVar11" identifier = identifier) ;) (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) (expression_statement "pdVar24 = local_4c;" (assignment_expression "pdVar24 = local_4c" identifier = identifier) ;) (do_statement "do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);" do (compound_statement "{\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                }" { (if_statement "if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }" if (parenthesized_expression "((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0))" ( (binary_expression "(piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)" (parenthesized_expression "(piVar11[*piVar20 * 3 + 1] != 0)" ( (binary_expression "piVar11[*piVar20 * 3 + 1] != 0" (subscript_expression "piVar11[*piVar20 * 3 + 1]" identifier [ (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "((piVar11[*piVar20 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar11[*piVar20 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar11[*piVar20 * 3 + 1] & 2U)" ( (binary_expression "piVar11[*piVar20 * 3 + 1] & 2U" (subscript_expression "piVar11[*piVar20 * 3 + 1]" identifier [ (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }" { (expression_statement "*pdVar24 = (double)(fVar13 * (float)*pdVar17);" (assignment_expression "*pdVar24 = (double)(fVar13 * (float)*pdVar17)" (pointer_expression "*pdVar24" * identifier) = (cast_expression "(double)(fVar13 * (float)*pdVar17)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar13 * (float)*pdVar17)" ( (binary_expression "fVar13 * (float)*pdVar17" identifier * (cast_expression "(float)*pdVar17" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pdVar17" * identifier))) )))) ;) })) (expression_statement "piVar20 = piVar20 + 3;" (assignment_expression "piVar20 = piVar20 + 3" identifier = (binary_expression "piVar20 + 3" identifier + number_literal)) ;) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "pdVar24 = pdVar24 + 1;" (assignment_expression "pdVar24 = pdVar24 + 1" identifier = (binary_expression "pdVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar11 + iVar16 * 3 != piVar20)" ( (binary_expression "piVar11 + iVar16 * 3 != piVar20" (binary_expression "piVar11 + iVar16 * 3" identifier + (binary_expression "iVar16 * 3" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "local_4c = local_4c + iVar16;" (assignment_expression "local_4c = local_4c + iVar16" identifier = (binary_expression "local_4c + iVar16" identifier + identifier)) ;) (expression_statement "pdVar10 = pdVar10 + 0x40;" (assignment_expression "pdVar10 = pdVar10 + 0x40" identifier = (binary_expression "pdVar10 + 0x40" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 < local_68)" ( (binary_expression "iVar19 < local_68" identifier < identifier) )) ;) }))) (labeled_statement "LAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();" statement_identifier : (expression_statement "iVar16 = SyncCacheViewAuthenticPixels();" (assignment_expression "iVar16 = SyncCacheViewAuthenticPixels()" identifier = (call_expression "SyncCacheViewAuthenticPixels()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar16 == 0) {\n            param_1[8] = 0;\n          }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            param_1[8] = 0;\n          }" { (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }" if (parenthesized_expression "(*(int *)(iVar9 + 0x300) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x300) != 0" (pointer_expression "*(int *)(iVar9 + 0x300)" * (cast_expression "(int *)(iVar9 + 0x300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x300)" ( (binary_expression "iVar9 + 0x300" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }" { (expression_statement "puVar12 = (uint *)param_1[9];" (assignment_expression "puVar12 = (uint *)param_1[9]" identifier = (cast_expression "(uint *)param_1[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar21 = *puVar12;" (assignment_expression "uVar21 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar23 = puVar12[1];" (assignment_expression "uVar23 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (do_statement "do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);" do (compound_statement "{\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar1 = *(longlong *)puVar12;" (assignment_expression "lVar1 = *(longlong *)puVar12" identifier = (pointer_expression "*(longlong *)puVar12" * (cast_expression "(longlong *)puVar12" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "bVar26 = CONCAT44(uVar23,uVar21) == lVar1;" (assignment_expression "bVar26 = CONCAT44(uVar23,uVar21) == lVar1" identifier = (binary_expression "CONCAT44(uVar23,uVar21) == lVar1" (call_expression "CONCAT44(uVar23,uVar21)" identifier (argument_list "(uVar23,uVar21)" ( identifier , identifier ))) == identifier)) ;) (if_statement "if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }" { (expression_statement "*(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);" (assignment_expression "*(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" (pointer_expression "*(longlong *)puVar12" * (cast_expression "(longlong *)puVar12" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" identifier (argument_list "(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" ( (binary_expression "uVar23 + (0xfffffffe < uVar21)" identifier + (parenthesized_expression "(0xfffffffe < uVar21)" ( (binary_expression "0xfffffffe < uVar21" number_literal < identifier) ))) , (binary_expression "uVar21 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" else (compound_statement "{\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" { (expression_statement "uVar23 = (uint)((ulonglong)lVar1 >> 0x20);" (assignment_expression "uVar23 = (uint)((ulonglong)lVar1 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar21 = (uint)lVar1;" (assignment_expression "uVar21 = (uint)lVar1" identifier = (cast_expression "(uint)lVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) ;) (expression_statement "iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);" (assignment_expression "iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" identifier = (call_expression "SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" identifier (argument_list "(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" ( identifier , (string_literal ""Polynomial/Image"" " string_content ") , (pointer_expression "*(undefined4 *)param_1[9]" * (cast_expression "(undefined4 *)param_1[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)param_1[9])[1]" (parenthesized_expression "((undefined4 *)param_1[9])" ( (cast_expression "(undefined4 *)param_1[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ])) )) [ number_literal ]) )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0018f4d1;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0018f4d1;" goto statement_identifier ;)) })) }))) })) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != local_50)" ( (binary_expression "iVar15 != local_50" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* DWARF original prototype: void PolynomialImage._omp_fn.5(anon_struct_40_10_b450a9d0 * param_0) */\n\nvoid __thiscall PolynomialImage__omp_fn_5(anon_struct_40_10_b450a9d0 *this)\n\n{\n  longlong lVar1;\n  double dVar2;\n  Image *pIVar3;\n  size_t sVar4;\n  PixelChannels **ppPVar5;\n  CacheView *cache_view;\n  ExceptionInfo *exception;\n  double *pdVar6;\n  size_t sVar7;\n  Image *image;\n  double *pdVar8;\n  PixelChannelMap *pPVar9;\n  PixelChannel PVar10;\n  PixelTrait PVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  double *pdVar16;\n  CacheView *cache_view_00;\n  size_t sVar17;\n  Image *image_00;\n  PixelChannelMap *pPVar18;\n  MagickBooleanType MVar19;\n  uint uVar20;\n  uint uVar21;\n  double *pdVar22;\n  bool bVar23;\n  double dVar24;\n  size_t local_68;\n  Quantum *local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  pIVar3 = this->image;\n  iVar15 = (int)pIVar3->rows / local_50;\n  local_50 = (int)pIVar3->rows % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    sVar4 = this->number_images;\n    ppPVar5 = this->polynomial_pixels;\n    cache_view = this->polynomial_view;\n    exception = this->exception;\n    pdVar6 = this->terms;\n    sVar7 = this->number_terms;\n    image = this->images;\n    do {\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "void __thiscall PolynomialImage__omp_fn_5(anon_struct_40_10_b450a9d0 *this)\n\n{\n  longlong lVar1;\n  double dVar2;\n  Image *pIVar3;\n  size_t sVar4;\n  PixelChannels **ppPVar5;\n  CacheView *cache_view;\n  ExceptionInfo *exception;\n  double *pdVar6;\n  size_t sVar7;\n  Image *image;\n  double *pdVar8;\n  PixelChannelMap *pPVar9;\n  PixelChannel PVar10;\n  PixelTrait PVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  double *pdVar16;\n  CacheView *cache_view_00;\n  size_t sVar17;\n  Image *image_00;\n  PixelChannelMap *pPVar18;\n  MagickBooleanType MVar19;\n  uint uVar20;\n  uint uVar21;\n  double *pdVar22;\n  bool bVar23;\n  double dVar24;\n  size_t local_68;\n  Quantum *local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  pIVar3 = this->image;\n  iVar15 = (int)pIVar3->rows / local_50;\n  local_50 = (int)pIVar3->rows % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    sVar4 = this->number_images;\n    ppPVar5 = this->polynomial_pixels;\n    cache_view = this->polynomial_view;\n    exception = this->exception;\n    pdVar6 = this->terms;\n    sVar7 = this->number_terms;\n    image = this->images;\n    do {\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "PolynomialImage__omp_fn_5(anon_struct_40_10_b450a9d0 *this)" identifier (parameter_list "(anon_struct_40_10_b450a9d0 *this)" ( (parameter_declaration "anon_struct_40_10_b450a9d0 *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  double dVar2;\n  Image *pIVar3;\n  size_t sVar4;\n  PixelChannels **ppPVar5;\n  CacheView *cache_view;\n  ExceptionInfo *exception;\n  double *pdVar6;\n  size_t sVar7;\n  Image *image;\n  double *pdVar8;\n  PixelChannelMap *pPVar9;\n  PixelChannel PVar10;\n  PixelTrait PVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  double *pdVar16;\n  CacheView *cache_view_00;\n  size_t sVar17;\n  Image *image_00;\n  PixelChannelMap *pPVar18;\n  MagickBooleanType MVar19;\n  uint uVar20;\n  uint uVar21;\n  double *pdVar22;\n  bool bVar23;\n  double dVar24;\n  size_t local_68;\n  Quantum *local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  pIVar3 = this->image;\n  iVar15 = (int)pIVar3->rows / local_50;\n  local_50 = (int)pIVar3->rows % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    sVar4 = this->number_images;\n    ppPVar5 = this->polynomial_pixels;\n    cache_view = this->polynomial_view;\n    exception = this->exception;\n    pdVar6 = this->terms;\n    sVar7 = this->number_terms;\n    image = this->images;\n    do {\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "Image *pIVar3;" type_identifier (pointer_declarator "*pIVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "PixelChannels **ppPVar5;" type_identifier (pointer_declarator "**ppPVar5" * (pointer_declarator "*ppPVar5" * identifier)) ;) (declaration "CacheView *cache_view;" type_identifier (pointer_declarator "*cache_view" * identifier) ;) (declaration "ExceptionInfo *exception;" type_identifier (pointer_declarator "*exception" * identifier) ;) (declaration "double *pdVar6;" primitive_type (pointer_declarator "*pdVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "Image *image;" type_identifier (pointer_declarator "*image" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "PixelChannelMap *pPVar9;" type_identifier (pointer_declarator "*pPVar9" * identifier) ;) (declaration "PixelChannel PVar10;" type_identifier identifier ;) (declaration "PixelTrait PVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "CacheView *cache_view_00;" type_identifier (pointer_declarator "*cache_view_00" * identifier) ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "Image *image_00;" type_identifier (pointer_declarator "*image_00" * identifier) ;) (declaration "PixelChannelMap *pPVar18;" type_identifier (pointer_declarator "*pPVar18" * identifier) ;) (declaration "MagickBooleanType MVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "double *pdVar22;" primitive_type (pointer_declarator "*pdVar22" * identifier) ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "double dVar24;" primitive_type identifier ;) (declaration "size_t local_68;" primitive_type identifier ;) (declaration "Quantum *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "double *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "double *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (expression_statement "local_50 = omp_get_num_threads();" (assignment_expression "local_50 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar14 = omp_get_thread_num();" (assignment_expression "iVar14 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "pIVar3 = this->image;" (assignment_expression "pIVar3 = this->image" identifier = (field_expression "this->image" identifier -> field_identifier)) ;) (expression_statement "iVar15 = (int)pIVar3->rows / local_50;" (assignment_expression "iVar15 = (int)pIVar3->rows / local_50" identifier = (binary_expression "(int)pIVar3->rows / local_50" (cast_expression "(int)pIVar3->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->rows" identifier -> field_identifier)) / identifier)) ;) (expression_statement "local_50 = (int)pIVar3->rows % local_50;" (assignment_expression "local_50 = (int)pIVar3->rows % local_50" identifier = (binary_expression "(int)pIVar3->rows % local_50" (cast_expression "(int)pIVar3->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->rows" identifier -> field_identifier)) % identifier)) ;) (if_statement "if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" if (parenthesized_expression "(iVar14 < local_50)" ( (binary_expression "iVar14 < local_50" identifier < identifier) )) (compound_statement "{\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) })) (expression_statement "local_50 = iVar14 * iVar15 + local_50;" (assignment_expression "local_50 = iVar14 * iVar15 + local_50" identifier = (binary_expression "iVar14 * iVar15 + local_50" (binary_expression "iVar14 * iVar15" identifier * identifier) + identifier)) ;) (expression_statement "iVar15 = iVar15 + local_50;" (assignment_expression "iVar15 = iVar15 + local_50" identifier = (binary_expression "iVar15 + local_50" identifier + identifier)) ;) (if_statement "if (local_50 < iVar15) {\n    sVar4 = this->number_images;\n    ppPVar5 = this->polynomial_pixels;\n    cache_view = this->polynomial_view;\n    exception = this->exception;\n    pdVar6 = this->terms;\n    sVar7 = this->number_terms;\n    image = this->images;\n    do {\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" if (parenthesized_expression "(local_50 < iVar15)" ( (binary_expression "local_50 < iVar15" identifier < identifier) )) (compound_statement "{\n    sVar4 = this->number_images;\n    ppPVar5 = this->polynomial_pixels;\n    cache_view = this->polynomial_view;\n    exception = this->exception;\n    pdVar6 = this->terms;\n    sVar7 = this->number_terms;\n    image = this->images;\n    do {\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" { (expression_statement "sVar4 = this->number_images;" (assignment_expression "sVar4 = this->number_images" identifier = (field_expression "this->number_images" identifier -> field_identifier)) ;) (expression_statement "ppPVar5 = this->polynomial_pixels;" (assignment_expression "ppPVar5 = this->polynomial_pixels" identifier = (field_expression "this->polynomial_pixels" identifier -> field_identifier)) ;) (expression_statement "cache_view = this->polynomial_view;" (assignment_expression "cache_view = this->polynomial_view" identifier = (field_expression "this->polynomial_view" identifier -> field_identifier)) ;) (expression_statement "exception = this->exception;" (assignment_expression "exception = this->exception" identifier = (field_expression "this->exception" identifier -> field_identifier)) ;) (expression_statement "pdVar6 = this->terms;" (assignment_expression "pdVar6 = this->terms" identifier = (field_expression "this->terms" identifier -> field_identifier)) ;) (expression_statement "sVar7 = this->number_terms;" (assignment_expression "sVar7 = this->number_terms" identifier = (field_expression "this->number_terms" identifier -> field_identifier)) ;) (expression_statement "image = this->images;" (assignment_expression "image = this->images" identifier = (field_expression "this->images" identifier -> field_identifier)) ;) (do_statement "do {\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);" do (compound_statement "{\n      iVar14 = omp_get_thread_num();\n      if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    }" { (expression_statement "iVar14 = omp_get_thread_num();" (assignment_expression "iVar14 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (if_statement "if (this->status != MagickFalse) {\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }" if (parenthesized_expression "(this->status != MagickFalse)" ( (binary_expression "this->status != MagickFalse" (field_expression "this->status" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);\n        if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }\n      }" { (expression_statement "local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception);" (assignment_expression "local_4c = QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception)" identifier = (call_expression "QueueCacheViewAuthenticPixels(cache_view,0,local_50,pIVar3->columns,1,exception)" identifier (argument_list "(cache_view,0,local_50,pIVar3->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "pIVar3->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (local_4c == (Quantum *)0x0) {\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }\n        else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }" if (parenthesized_expression "(local_4c == (Quantum *)0x0)" ( (binary_expression "local_4c == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0018f4d1:\n          this->status = MagickFalse;\n        }" { (labeled_statement "LAB_0018f4d1:\n          this->status = MagickFalse;" statement_identifier : (expression_statement "this->status = MagickFalse;" (assignment_expression "this->status = MagickFalse" (field_expression "this->status" identifier -> field_identifier) = identifier) ;)) }) (else_clause "else {\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }" else (compound_statement "{\n          pdVar8 = ppPVar5[iVar14]->channel;\n          local_68 = pIVar3->columns;\n          if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }\nLAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);\n          if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }\n          if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }\n        }" { (expression_statement "pdVar8 = ppPVar5[iVar14]->channel;" (assignment_expression "pdVar8 = ppPVar5[iVar14]->channel" identifier = (field_expression "ppPVar5[iVar14]->channel" (subscript_expression "ppPVar5[iVar14]" identifier [ identifier ]) -> field_identifier)) ;) (expression_statement "local_68 = pIVar3->columns;" (assignment_expression "local_68 = pIVar3->columns" identifier = (field_expression "pIVar3->columns" identifier -> field_identifier)) ;) (if_statement "if ((int)local_68 < 1) {\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }" if (parenthesized_expression "((int)local_68 < 1)" ( (binary_expression "(int)local_68 < 1" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (0 < (int)sVar4) goto LAB_0018f1eb;\n          }" { (if_statement "if (0 < (int)sVar4) goto LAB_0018f1eb;" if (parenthesized_expression "(0 < (int)sVar4)" ( (binary_expression "0 < (int)sVar4" number_literal < (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0018f1eb;" goto statement_identifier ;)) }) (else_clause "else {\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }" else (compound_statement "{\n            pdVar16 = pdVar8;\n            do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);\n            if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            sVar17 = pIVar3->number_channels;\n            iVar14 = 0;\n            do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);\n          }" { (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (do_statement "do {\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            } while (pdVar8 + local_68 * 0x40 != pdVar22);" do (compound_statement "{\n              pdVar22 = pdVar16 + 0x40;\n              do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);\n            }" { (expression_statement "pdVar22 = pdVar16 + 0x40;" (assignment_expression "pdVar22 = pdVar16 + 0x40" identifier = (binary_expression "pdVar16 + 0x40" identifier + number_literal)) ;) (do_statement "do {\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              } while (pdVar22 != pdVar16);" do (compound_statement "{\n                *pdVar16 = 0.0;\n                pdVar16 = pdVar16 + 1;\n              }" { (expression_statement "*pdVar16 = 0.0;" (assignment_expression "*pdVar16 = 0.0" (pointer_expression "*pdVar16" * identifier) = number_literal) ;) (expression_statement "pdVar16 = pdVar16 + 1;" (assignment_expression "pdVar16 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar22 != pdVar16)" ( (binary_expression "pdVar22 != pdVar16" identifier != identifier) )) ;) }) while (parenthesized_expression "(pdVar8 + local_68 * 0x40 != pdVar22)" ( (binary_expression "pdVar8 + local_68 * 0x40 != pdVar22" (binary_expression "pdVar8 + local_68 * 0x40" identifier + (binary_expression "local_68 * 0x40" identifier * number_literal)) != identifier) )) ;) (if_statement "if (0 < (int)sVar4) {\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }" if (parenthesized_expression "(0 < (int)sVar4)" ( (binary_expression "0 < (int)sVar4" number_literal < (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0018f1eb:\n              local_54 = 0;\n              image_00 = image;\n              local_58 = pdVar6;\n              do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);\n              local_68 = pIVar3->columns;\n              if ((int)local_68 < 1) goto LAB_0018f43c;\n            }" { (labeled_statement "LAB_0018f1eb:\n              local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) (expression_statement "image_00 = image;" (assignment_expression "image_00 = image" identifier = identifier) ;) (expression_statement "local_58 = pdVar6;" (assignment_expression "local_58 = pdVar6" identifier = identifier) ;) (do_statement "do {\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < (int)sVar4);" do (compound_statement "{\n                if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              }" { (if_statement "if (local_54 < (int)sVar7) {\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(image_00);\n                }" if (parenthesized_expression "(local_54 < (int)sVar7)" ( (binary_expression "local_54 < (int)sVar7" identifier < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  cache_view_00 = AcquireVirtualCacheView(image_00,exception);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);\n                  if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }\n                  if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }\n                  DestroyCacheView(cache_view_00);\n                  image_00 = GetNextImageInList(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_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception);" (assignment_expression "local_64 = GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception)" identifier = (call_expression "GetCacheViewVirtualPixels\n                                       (cache_view_00,0,local_50,pIVar3->columns,1,exception)" identifier (argument_list "(cache_view_00,0,local_50,pIVar3->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "pIVar3->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (local_64 == (Quantum *)0x0) {\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }" if (parenthesized_expression "(local_64 == (Quantum *)0x0)" ( (binary_expression "local_64 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    DestroyCacheView(cache_view_00);\n                    break;\n                  }" { (expression_statement "DestroyCacheView(cache_view_00);" (call_expression "DestroyCacheView(cache_view_00)" identifier (argument_list "(cache_view_00)" ( identifier ))) ;) (break_statement "break;" break ;) })) (if_statement "if (0 < (int)pIVar3->columns) {\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }" if (parenthesized_expression "(0 < (int)pIVar3->columns)" ( (binary_expression "0 < (int)pIVar3->columns" number_literal < (cast_expression "(int)pIVar3->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->columns" identifier -> field_identifier))) )) (compound_statement "{\n                    local_5c = 0;\n                    pdVar16 = pdVar8;\n                    do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);\n                  }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (do_statement "do {\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    } while (local_5c < (int)pIVar3->columns);" do (compound_statement "{\n                      sVar17 = image_00->number_channels;\n                      iVar14 = 0;\n                      if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }\n                      pdVar16 = pdVar16 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + sVar17;\n                    }" { (expression_statement "sVar17 = image_00->number_channels;" (assignment_expression "sVar17 = image_00->number_channels" identifier = (field_expression "image_00->number_channels" identifier -> field_identifier)) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)sVar17) {\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }" if (parenthesized_expression "(0 < (int)sVar17)" ( (binary_expression "0 < (int)sVar17" number_literal < (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);\n                      }" { (do_statement "do {\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        } while (iVar14 < (int)sVar17);" do (compound_statement "{\n                          pPVar9 = pIVar3->channel_map;\n                          PVar10 = pPVar9[iVar14].channel;\n                          PVar11 = image_00->channel_map[PVar10].traits;\n                          if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }\n                          sVar17 = image_00->number_channels;\n                          iVar14 = iVar14 + 1;\n                        }" { (expression_statement "pPVar9 = pIVar3->channel_map;" (assignment_expression "pPVar9 = pIVar3->channel_map" identifier = (field_expression "pIVar3->channel_map" identifier -> field_identifier)) ;) (expression_statement "PVar10 = pPVar9[iVar14].channel;" (assignment_expression "PVar10 = pPVar9[iVar14].channel" identifier = (field_expression "pPVar9[iVar14].channel" (subscript_expression "pPVar9[iVar14]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "PVar11 = image_00->channel_map[PVar10].traits;" (assignment_expression "PVar11 = image_00->channel_map[PVar10].traits" identifier = (field_expression "image_00->channel_map[PVar10].traits" (subscript_expression "image_00->channel_map[PVar10]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (if_statement "if (((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)) {\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }" if (parenthesized_expression "(((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait))" ( (binary_expression "((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)) &&\n                             ((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)" (parenthesized_expression "((pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait))" ( (binary_expression "(pPVar9[PVar10].traits != UndefinedPixelTrait) &&\n                              (PVar11 != UndefinedPixelTrait)" (parenthesized_expression "(pPVar9[PVar10].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar9[PVar10].traits != UndefinedPixelTrait" (field_expression "pPVar9[PVar10].traits" (subscript_expression "pPVar9[PVar10]" identifier [ identifier ]) . field_identifier) != identifier) )) && (parenthesized_expression "(PVar11 != UndefinedPixelTrait)" ( (binary_expression "PVar11 != UndefinedPixelTrait" identifier != identifier) ))) )) && (parenthesized_expression "((PVar11 & UpdatePixelTrait) != UndefinedPixelTrait)" ( (binary_expression "(PVar11 & UpdatePixelTrait) != UndefinedPixelTrait" (parenthesized_expression "(PVar11 & UpdatePixelTrait)" ( (binary_expression "PVar11 & UpdatePixelTrait" identifier & identifier) )) != identifier) ))) )) (compound_statement "{\n                            dVar2 = *local_58;\n                            dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );\n                            pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];\n                          }" { (expression_statement "dVar2 = *local_58;" (assignment_expression "dVar2 = *local_58" identifier = (pointer_expression "*local_58" * identifier)) ;) (expression_statement "dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        );" (assignment_expression "dVar24 = pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        )" identifier = (call_expression "pow(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        )" identifier (argument_list "(_DAT_0029f148 * local_64[pPVar9[PVar10].offset],local_58[1]\n                                        )" ( (binary_expression "_DAT_0029f148 * local_64[pPVar9[PVar10].offset]" identifier * (subscript_expression "local_64[pPVar9[PVar10].offset]" identifier [ (field_expression "pPVar9[PVar10].offset" (subscript_expression "pPVar9[PVar10]" identifier [ identifier ]) . field_identifier) ])) , (subscript_expression "local_58[1]" identifier [ number_literal ]) )))) ;) (expression_statement "pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14];" (assignment_expression "pdVar16[iVar14] = dVar24 * dVar2 + pdVar16[iVar14]" (subscript_expression "pdVar16[iVar14]" identifier [ identifier ]) = (binary_expression "dVar24 * dVar2 + pdVar16[iVar14]" (binary_expression "dVar24 * dVar2" identifier * identifier) + (subscript_expression "pdVar16[iVar14]" identifier [ identifier ]))) ;) })) (expression_statement "sVar17 = image_00->number_channels;" (assignment_expression "sVar17 = image_00->number_channels" identifier = (field_expression "image_00->number_channels" identifier -> field_identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar14 < (int)sVar17)" ( (binary_expression "iVar14 < (int)sVar17" identifier < (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar16 = pdVar16 + 0x40;" (assignment_expression "pdVar16 = pdVar16 + 0x40" identifier = (binary_expression "pdVar16 + 0x40" identifier + number_literal)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "local_64 = local_64 + sVar17;" (assignment_expression "local_64 = local_64 + sVar17" identifier = (binary_expression "local_64 + sVar17" identifier + identifier)) ;) }) while (parenthesized_expression "(local_5c < (int)pIVar3->columns)" ( (binary_expression "local_5c < (int)pIVar3->columns" identifier < (cast_expression "(int)pIVar3->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar3->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "DestroyCacheView(cache_view_00);" (call_expression "DestroyCacheView(cache_view_00)" identifier (argument_list "(cache_view_00)" ( identifier ))) ;) (expression_statement "image_00 = GetNextImageInList(image_00);" (assignment_expression "image_00 = GetNextImageInList(image_00)" identifier = (call_expression "GetNextImageInList(image_00)" identifier (argument_list "(image_00)" ( identifier )))) ;) })) (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "local_58 = local_58 + 2;" (assignment_expression "local_58 = local_58 + 2" identifier = (binary_expression "local_58 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_54 < (int)sVar4)" ( (binary_expression "local_54 < (int)sVar4" identifier < (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "local_68 = pIVar3->columns;" (assignment_expression "local_68 = pIVar3->columns" identifier = (field_expression "pIVar3->columns" identifier -> field_identifier)) ;) (if_statement "if ((int)local_68 < 1) goto LAB_0018f43c;" if (parenthesized_expression "((int)local_68 < 1)" ( (binary_expression "(int)local_68 < 1" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0018f43c;" goto statement_identifier ;)) })) (expression_statement "fVar13 = DAT_0029f710;" (assignment_expression "fVar13 = DAT_0029f710" identifier = identifier) ;) (expression_statement "sVar17 = pIVar3->number_channels;" (assignment_expression "sVar17 = pIVar3->number_channels" identifier = (field_expression "pIVar3->number_channels" identifier -> field_identifier)) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            } while (iVar14 < (int)local_68);" do (compound_statement "{\n              if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }\n              iVar14 = iVar14 + 1;\n              local_4c = local_4c + sVar17;\n              pdVar8 = pdVar8 + 0x40;\n            }" { (if_statement "if (0 < (int)sVar17) {\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }" if (parenthesized_expression "(0 < (int)sVar17)" ( (binary_expression "0 < (int)sVar17" number_literal < (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pPVar9 = pIVar3->channel_map;\n                pPVar18 = pPVar9;\n                pdVar16 = pdVar8;\n                pdVar22 = local_4c;\n                do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);\n              }" { (expression_statement "pPVar9 = pIVar3->channel_map;" (assignment_expression "pPVar9 = pIVar3->channel_map" identifier = (field_expression "pIVar3->channel_map" identifier -> field_identifier)) ;) (expression_statement "pPVar18 = pPVar9;" (assignment_expression "pPVar18 = pPVar9" identifier = identifier) ;) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (expression_statement "pdVar22 = local_4c;" (assignment_expression "pdVar22 = local_4c" identifier = identifier) ;) (do_statement "do {\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                } while (pPVar9 + sVar17 != pPVar18);" do (compound_statement "{\n                  if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }\n                  pPVar18 = pPVar18 + 1;\n                  pdVar16 = pdVar16 + 1;\n                  pdVar22 = pdVar22 + 1;\n                }" { (if_statement "if ((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))\n                  {\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }" if (parenthesized_expression "((pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait))" ( (binary_expression "(pPVar9[pPVar18->channel].traits != UndefinedPixelTrait) &&\n                     ((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait)" (parenthesized_expression "(pPVar9[pPVar18->channel].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar9[pPVar18->channel].traits != UndefinedPixelTrait" (field_expression "pPVar9[pPVar18->channel].traits" (subscript_expression "pPVar9[pPVar18->channel]" identifier [ (field_expression "pPVar18->channel" identifier -> field_identifier) ]) . field_identifier) != identifier) )) && (parenthesized_expression "((pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait)" ( (binary_expression "(pPVar9[pPVar18->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait" (parenthesized_expression "(pPVar9[pPVar18->channel].traits & UpdatePixelTrait)" ( (binary_expression "pPVar9[pPVar18->channel].traits & UpdatePixelTrait" (field_expression "pPVar9[pPVar18->channel].traits" (subscript_expression "pPVar9[pPVar18->channel]" identifier [ (field_expression "pPVar18->channel" identifier -> field_identifier) ]) . field_identifier) & identifier) )) != identifier) ))) )) (compound_statement "{\n                    *pdVar22 = (double)(fVar13 * (float)*pdVar16);\n                  }" { (expression_statement "*pdVar22 = (double)(fVar13 * (float)*pdVar16);" (assignment_expression "*pdVar22 = (double)(fVar13 * (float)*pdVar16)" (pointer_expression "*pdVar22" * identifier) = (cast_expression "(double)(fVar13 * (float)*pdVar16)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar13 * (float)*pdVar16)" ( (binary_expression "fVar13 * (float)*pdVar16" identifier * (cast_expression "(float)*pdVar16" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pdVar16" * identifier))) )))) ;) })) (expression_statement "pPVar18 = pPVar18 + 1;" (assignment_expression "pPVar18 = pPVar18 + 1" identifier = (binary_expression "pPVar18 + 1" identifier + number_literal)) ;) (expression_statement "pdVar16 = pdVar16 + 1;" (assignment_expression "pdVar16 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "pdVar22 = pdVar22 + 1;" (assignment_expression "pdVar22 = pdVar22 + 1" identifier = (binary_expression "pdVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar9 + sVar17 != pPVar18)" ( (binary_expression "pPVar9 + sVar17 != pPVar18" (binary_expression "pPVar9 + sVar17" identifier + identifier) != identifier) )) ;) })) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "local_4c = local_4c + sVar17;" (assignment_expression "local_4c = local_4c + sVar17" identifier = (binary_expression "local_4c + sVar17" identifier + identifier)) ;) (expression_statement "pdVar8 = pdVar8 + 0x40;" (assignment_expression "pdVar8 = pdVar8 + 0x40" identifier = (binary_expression "pdVar8 + 0x40" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar14 < (int)local_68)" ( (binary_expression "iVar14 < (int)local_68" identifier < (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (labeled_statement "LAB_0018f43c:\n          MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);" statement_identifier : (expression_statement "MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception);" (assignment_expression "MVar19 = SyncCacheViewAuthenticPixels(cache_view,exception)" identifier = (call_expression "SyncCacheViewAuthenticPixels(cache_view,exception)" identifier (argument_list "(cache_view,exception)" ( identifier , identifier )))) ;)) (if_statement "if (MVar19 == MagickFalse) {\n            this->status = MagickFalse;\n          }" if (parenthesized_expression "(MVar19 == MagickFalse)" ( (binary_expression "MVar19 == MagickFalse" identifier == identifier) )) (compound_statement "{\n            this->status = MagickFalse;\n          }" { (expression_statement "this->status = MagickFalse;" (assignment_expression "this->status = MagickFalse" (field_expression "this->status" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (image->progress_monitor != (MagickProgressMonitor)0x0) {\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }" if (parenthesized_expression "(image->progress_monitor != (MagickProgressMonitor)0x0)" ( (binary_expression "image->progress_monitor != (MagickProgressMonitor)0x0" (field_expression "image->progress_monitor" identifier -> field_identifier) != (cast_expression "(MagickProgressMonitor)0x0" ( (type_descriptor "MagickProgressMonitor" type_identifier) ) number_literal)) )) (compound_statement "{\n            puVar12 = (uint *)this->progress;\n            uVar20 = *puVar12;\n            uVar21 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);\n            MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);\n            if (MVar19 == MagickFalse) goto LAB_0018f4d1;\n          }" { (expression_statement "puVar12 = (uint *)this->progress;" (assignment_expression "puVar12 = (uint *)this->progress" identifier = (cast_expression "(uint *)this->progress" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->progress" identifier -> field_identifier))) ;) (expression_statement "uVar20 = *puVar12;" (assignment_expression "uVar20 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar21 = puVar12[1];" (assignment_expression "uVar21 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (do_statement "do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar23);" do (compound_statement "{\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar23 = CONCAT44(uVar21,uVar20) == lVar1;\n              if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }\n              UNLOCK();\n            }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar1 = *(longlong *)puVar12;" (assignment_expression "lVar1 = *(longlong *)puVar12" identifier = (pointer_expression "*(longlong *)puVar12" * (cast_expression "(longlong *)puVar12" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "bVar23 = CONCAT44(uVar21,uVar20) == lVar1;" (assignment_expression "bVar23 = CONCAT44(uVar21,uVar20) == lVar1" identifier = (binary_expression "CONCAT44(uVar21,uVar20) == lVar1" (call_expression "CONCAT44(uVar21,uVar20)" identifier (argument_list "(uVar21,uVar20)" ( identifier , identifier ))) == identifier)) ;) (if_statement "if (bVar23) {\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }\n              else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n                *(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);\n              }" { (expression_statement "*(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1);" (assignment_expression "*(longlong *)puVar12 = CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1)" (pointer_expression "*(longlong *)puVar12" * (cast_expression "(longlong *)puVar12" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "CONCAT44(uVar21 + (0xfffffffe < uVar20),uVar20 + 1)" identifier (argument_list "(uVar21 + (0xfffffffe < uVar20),uVar20 + 1)" ( (binary_expression "uVar21 + (0xfffffffe < uVar20)" identifier + (parenthesized_expression "(0xfffffffe < uVar20)" ( (binary_expression "0xfffffffe < uVar20" number_literal < identifier) ))) , (binary_expression "uVar20 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }" else (compound_statement "{\n                uVar21 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar20 = (uint)lVar1;\n              }" { (expression_statement "uVar21 = (uint)((ulonglong)lVar1 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar1 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar20 = (uint)lVar1;" (assignment_expression "uVar20 = (uint)lVar1" identifier = (cast_expression "(uint)lVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) ;) (expression_statement "MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows);" (assignment_expression "MVar19 = SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows)" identifier = (call_expression "SetImageProgress(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows)" identifier (argument_list "(image,"Polynomial/Image",*this->progress,\n                                      (ulonglong)pIVar3->rows)" ( identifier , (string_literal ""Polynomial/Image"" " string_content ") , (pointer_expression "*this->progress" * (field_expression "this->progress" identifier -> field_identifier)) , (cast_expression "(ulonglong)pIVar3->rows" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "pIVar3->rows" identifier -> field_identifier)) )))) ;) (if_statement "if (MVar19 == MagickFalse) goto LAB_0018f4d1;" if (parenthesized_expression "(MVar19 == MagickFalse)" ( (binary_expression "MVar19 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_0018f4d1;" goto statement_identifier ;)) })) }))) })) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != local_50)" ( (binary_expression "iVar15 != local_50" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0018f080(int *param_1)\n\n{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0018f080(int *param_1)\n\n{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0018f080(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "double *pdVar24;" primitive_type (pointer_declarator "*pdVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "double *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "double *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (expression_statement "local_50 = omp_get_num_threads();" (assignment_expression "local_50 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar14 = omp_get_thread_num();" (assignment_expression "iVar14 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = *(int *)(iVar3 + 0x1c) / local_50;" (assignment_expression "iVar15 = *(int *)(iVar3 + 0x1c) / local_50" identifier = (binary_expression "*(int *)(iVar3 + 0x1c) / local_50" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "local_50 = *(int *)(iVar3 + 0x1c) % local_50;" (assignment_expression "local_50 = *(int *)(iVar3 + 0x1c) % local_50" identifier = (binary_expression "*(int *)(iVar3 + 0x1c) % local_50" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" if (parenthesized_expression "(iVar14 < local_50)" ( (binary_expression "iVar14 < local_50" identifier < identifier) )) (compound_statement "{\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) })) (expression_statement "local_50 = iVar14 * iVar15 + local_50;" (assignment_expression "local_50 = iVar14 * iVar15 + local_50" identifier = (binary_expression "iVar14 * iVar15 + local_50" (binary_expression "iVar14 * iVar15" identifier * identifier) + identifier)) ;) (expression_statement "iVar15 = iVar15 + local_50;" (assignment_expression "iVar15 = iVar15 + local_50" identifier = (binary_expression "iVar15 + local_50" identifier + identifier)) ;) (if_statement "if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" if (parenthesized_expression "(local_50 < iVar15)" ( (binary_expression "local_50 < iVar15" identifier < identifier) )) (compound_statement "{\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" { (expression_statement "iVar14 = param_1[7];" (assignment_expression "iVar14 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_1[6];" (assignment_expression "iVar4 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = param_1[4];" (assignment_expression "iVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = param_1[3];" (assignment_expression "iVar6 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "pdVar7 = (double *)param_1[2];" (assignment_expression "pdVar7 = (double *)param_1[2]" identifier = (cast_expression "(double *)param_1[2]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = *param_1;" (assignment_expression "iVar9 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (do_statement "do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);" do (compound_statement "{\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    }" { (expression_statement "iVar16 = omp_get_thread_num();" (assignment_expression "iVar16 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }" { (expression_statement "local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);" (assignment_expression "local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" identifier = (cast_expression "(double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" identifier (argument_list "(iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (if_statement "if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" if (parenthesized_expression "(local_4c == (double *)0x0)" ( (binary_expression "local_4c == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }" { (labeled_statement "LAB_0018f4d1:\n          param_1[8] = 0;" statement_identifier : (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" else (compound_statement "{\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" { (expression_statement "pdVar10 = *(double **)(iVar4 + iVar16 * 4);" (assignment_expression "pdVar10 = *(double **)(iVar4 + iVar16 * 4)" identifier = (pointer_expression "*(double **)(iVar4 + iVar16 * 4)" * (cast_expression "(double **)(iVar4 + iVar16 * 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + iVar16 * 4)" ( (binary_expression "iVar4 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal)) ))))) ;) (expression_statement "local_68 = *(int *)(iVar3 + 0x18);" (assignment_expression "local_68 = *(int *)(iVar3 + 0x18)" identifier = (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" if (parenthesized_expression "(local_68 < 1)" ( (binary_expression "local_68 < 1" identifier < number_literal) )) (compound_statement "{\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }" { (if_statement "if (0 < iVar14) goto LAB_0018f1eb;" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (goto_statement "goto LAB_0018f1eb;" goto statement_identifier ;)) }) (else_clause "else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" else (compound_statement "{\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" { (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) (do_statement "do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);" do (compound_statement "{\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            }" { (expression_statement "pdVar24 = pdVar17 + 0x40;" (assignment_expression "pdVar24 = pdVar17 + 0x40" identifier = (binary_expression "pdVar17 + 0x40" identifier + number_literal)) ;) (do_statement "do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);" do (compound_statement "{\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              }" { (expression_statement "*pdVar17 = 0.0;" (assignment_expression "*pdVar17 = 0.0" (pointer_expression "*pdVar17" * identifier) = number_literal) ;) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar24 != pdVar17)" ( (binary_expression "pdVar24 != pdVar17" identifier != identifier) )) ;) }) while (parenthesized_expression "(pdVar10 + local_68 * 0x40 != pdVar24)" ( (binary_expression "pdVar10 + local_68 * 0x40 != pdVar24" (binary_expression "pdVar10 + local_68 * 0x40" identifier + (binary_expression "local_68 * 0x40" identifier * number_literal)) != identifier) )) ;) (if_statement "if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }" { (labeled_statement "LAB_0018f1eb:\n              local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) (expression_statement "iVar16 = iVar9;" (assignment_expression "iVar16 = iVar9" identifier = identifier) ;) (expression_statement "local_58 = pdVar7;" (assignment_expression "local_58 = pdVar7" identifier = identifier) ;) (do_statement "do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);" do (compound_statement "{\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              }" { (if_statement "if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }" if (parenthesized_expression "(local_54 < iVar8)" ( (binary_expression "local_54 < iVar8" identifier < identifier) )) (compound_statement "{\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }" { (expression_statement "uVar18 = AcquireVirtualCacheView(iVar16);" (assignment_expression "uVar18 = AcquireVirtualCacheView(iVar16)" identifier = (call_expression "AcquireVirtualCacheView(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) (expression_statement "local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);" (assignment_expression "local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" identifier = (call_expression "GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" identifier (argument_list "(uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n                    DestroyCacheView(uVar18);\n                    break;\n                  }" { (expression_statement "DestroyCacheView(uVar18);" (call_expression "DestroyCacheView(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) (break_statement "break;" break ;) })) (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x18))" ( (binary_expression "0 < *(int *)(iVar3 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) (do_statement "do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));" do (compound_statement "{\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    }" { (expression_statement "iVar19 = *(int *)(iVar16 + 0x298);" (assignment_expression "iVar19 = *(int *)(iVar16 + 0x298)" identifier = (pointer_expression "*(int *)(iVar16 + 0x298)" * (cast_expression "(int *)(iVar16 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x298)" ( (binary_expression "iVar16 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }" { (do_statement "do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);" do (compound_statement "{\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        }" { (expression_statement "iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;" (assignment_expression "iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc" identifier = (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" ( (binary_expression "*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + (binary_expression "iVar25 * 0xc" identifier * number_literal)) )))) * number_literal)) ;) (expression_statement "iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;" (assignment_expression "iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22" identifier = (binary_expression "*(int *)(iVar3 + 0x2a8) + iVar22" (pointer_expression "*(int *)(iVar3 + 0x2a8)" * (cast_expression "(int *)(iVar3 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);" (assignment_expression "uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" * (cast_expression "(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" ( (binary_expression "*(int *)(iVar16 + 0x2a8) + 4 + iVar22" (binary_expression "*(int *)(iVar16 + 0x2a8) + 4" (pointer_expression "*(int *)(iVar16 + 0x2a8)" * (cast_expression "(int *)(iVar16 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x2a8)" ( (binary_expression "iVar16 + 0x2a8" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (if_statement "if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }" if (parenthesized_expression "(((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))" ( (binary_expression "((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0)" (parenthesized_expression "((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0))" ( (binary_expression "(*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)" (parenthesized_expression "(*(int *)(iVar19 + 4) != 0)" ( (binary_expression "*(int *)(iVar19 + 4) != 0" (pointer_expression "*(int *)(iVar19 + 4)" * (cast_expression "(int *)(iVar19 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }" { (expression_statement "dVar2 = *local_58;" (assignment_expression "dVar2 = *local_58" identifier = (pointer_expression "*local_58" * identifier)) ;) (expression_statement "dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);" (assignment_expression "dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" identifier = (call_expression "pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" identifier (argument_list "(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" ( (binary_expression "_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" identifier * (pointer_expression "*(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" * (cast_expression "(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + *(int *)(iVar19 + 8) * 8)" ( (binary_expression "local_64 + *(int *)(iVar19 + 8) * 8" identifier + (binary_expression "*(int *)(iVar19 + 8) * 8" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) * number_literal)) ))))) , (subscript_expression "local_58[1]" identifier [ number_literal ]) )))) ;) (expression_statement "pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];" (assignment_expression "pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25]" (subscript_expression "pdVar17[iVar25]" identifier [ identifier ]) = (binary_expression "dVar27 * dVar2 + pdVar17[iVar25]" (binary_expression "dVar27 * dVar2" identifier * identifier) + (subscript_expression "pdVar17[iVar25]" identifier [ identifier ]))) ;) })) (expression_statement "iVar19 = *(int *)(iVar16 + 0x298);" (assignment_expression "iVar19 = *(int *)(iVar16 + 0x298)" identifier = (pointer_expression "*(int *)(iVar16 + 0x298)" * (cast_expression "(int *)(iVar16 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x298)" ( (binary_expression "iVar16 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < iVar19)" ( (binary_expression "iVar25 < iVar19" identifier < identifier) )) ;) })) (expression_statement "pdVar17 = pdVar17 + 0x40;" (assignment_expression "pdVar17 = pdVar17 + 0x40" identifier = (binary_expression "pdVar17 + 0x40" identifier + number_literal)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "local_64 = local_64 + iVar19 * 8;" (assignment_expression "local_64 = local_64 + iVar19 * 8" identifier = (binary_expression "local_64 + iVar19 * 8" identifier + (binary_expression "iVar19 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(local_5c < *(int *)(iVar3 + 0x18))" ( (binary_expression "local_5c < *(int *)(iVar3 + 0x18)" identifier < (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "DestroyCacheView(uVar18);" (call_expression "DestroyCacheView(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) (expression_statement "iVar16 = GetNextImageInList(iVar16);" (assignment_expression "iVar16 = GetNextImageInList(iVar16)" identifier = (call_expression "GetNextImageInList(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) })) (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "local_58 = local_58 + 2;" (assignment_expression "local_58 = local_58 + 2" identifier = (binary_expression "local_58 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_54 < iVar14)" ( (binary_expression "local_54 < iVar14" identifier < identifier) )) ;) (expression_statement "local_68 = *(int *)(iVar3 + 0x18);" (assignment_expression "local_68 = *(int *)(iVar3 + 0x18)" identifier = (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (local_68 < 1) goto LAB_0018f43c;" if (parenthesized_expression "(local_68 < 1)" ( (binary_expression "local_68 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0018f43c;" goto statement_identifier ;)) })) (expression_statement "fVar13 = DAT_0029f710;" (assignment_expression "fVar13 = DAT_0029f710" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(iVar3 + 0x298);" (assignment_expression "iVar16 = *(int *)(iVar3 + 0x298)" identifier = (pointer_expression "*(int *)(iVar3 + 0x298)" * (cast_expression "(int *)(iVar3 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x298)" ( (binary_expression "iVar3 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);" do (compound_statement "{\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            }" { (if_statement "if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }" { (expression_statement "piVar11 = *(int **)(iVar3 + 0x2a8);" (assignment_expression "piVar11 = *(int **)(iVar3 + 0x2a8)" identifier = (pointer_expression "*(int **)(iVar3 + 0x2a8)" * (cast_expression "(int **)(iVar3 + 0x2a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2a8)" ( (binary_expression "iVar3 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = piVar11;" (assignment_expression "piVar20 = piVar11" identifier = identifier) ;) (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) (expression_statement "pdVar24 = local_4c;" (assignment_expression "pdVar24 = local_4c" identifier = identifier) ;) (do_statement "do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);" do (compound_statement "{\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                }" { (if_statement "if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }" if (parenthesized_expression "((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0))" ( (binary_expression "(piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)" (parenthesized_expression "(piVar11[*piVar20 * 3 + 1] != 0)" ( (binary_expression "piVar11[*piVar20 * 3 + 1] != 0" (subscript_expression "piVar11[*piVar20 * 3 + 1]" identifier [ (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "((piVar11[*piVar20 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar11[*piVar20 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar11[*piVar20 * 3 + 1] & 2U)" ( (binary_expression "piVar11[*piVar20 * 3 + 1] & 2U" (subscript_expression "piVar11[*piVar20 * 3 + 1]" identifier [ (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }" { (expression_statement "*pdVar24 = (double)(fVar13 * (float)*pdVar17);" (assignment_expression "*pdVar24 = (double)(fVar13 * (float)*pdVar17)" (pointer_expression "*pdVar24" * identifier) = (cast_expression "(double)(fVar13 * (float)*pdVar17)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar13 * (float)*pdVar17)" ( (binary_expression "fVar13 * (float)*pdVar17" identifier * (cast_expression "(float)*pdVar17" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pdVar17" * identifier))) )))) ;) })) (expression_statement "piVar20 = piVar20 + 3;" (assignment_expression "piVar20 = piVar20 + 3" identifier = (binary_expression "piVar20 + 3" identifier + number_literal)) ;) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "pdVar24 = pdVar24 + 1;" (assignment_expression "pdVar24 = pdVar24 + 1" identifier = (binary_expression "pdVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar11 + iVar16 * 3 != piVar20)" ( (binary_expression "piVar11 + iVar16 * 3 != piVar20" (binary_expression "piVar11 + iVar16 * 3" identifier + (binary_expression "iVar16 * 3" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "local_4c = local_4c + iVar16;" (assignment_expression "local_4c = local_4c + iVar16" identifier = (binary_expression "local_4c + iVar16" identifier + identifier)) ;) (expression_statement "pdVar10 = pdVar10 + 0x40;" (assignment_expression "pdVar10 = pdVar10 + 0x40" identifier = (binary_expression "pdVar10 + 0x40" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 < local_68)" ( (binary_expression "iVar19 < local_68" identifier < identifier) )) ;) }))) (labeled_statement "LAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();" statement_identifier : (expression_statement "iVar16 = SyncCacheViewAuthenticPixels();" (assignment_expression "iVar16 = SyncCacheViewAuthenticPixels()" identifier = (call_expression "SyncCacheViewAuthenticPixels()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar16 == 0) {\n            param_1[8] = 0;\n          }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            param_1[8] = 0;\n          }" { (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }" if (parenthesized_expression "(*(int *)(iVar9 + 0x300) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x300) != 0" (pointer_expression "*(int *)(iVar9 + 0x300)" * (cast_expression "(int *)(iVar9 + 0x300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x300)" ( (binary_expression "iVar9 + 0x300" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }" { (expression_statement "puVar12 = (uint *)param_1[9];" (assignment_expression "puVar12 = (uint *)param_1[9]" identifier = (cast_expression "(uint *)param_1[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar21 = *puVar12;" (assignment_expression "uVar21 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar23 = puVar12[1];" (assignment_expression "uVar23 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (do_statement "do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);" do (compound_statement "{\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar1 = *(longlong *)puVar12;" (assignment_expression "lVar1 = *(longlong *)puVar12" identifier = (pointer_expression "*(longlong *)puVar12" * (cast_expression "(longlong *)puVar12" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "bVar26 = CONCAT44(uVar23,uVar21) == lVar1;" (assignment_expression "bVar26 = CONCAT44(uVar23,uVar21) == lVar1" identifier = (binary_expression "CONCAT44(uVar23,uVar21) == lVar1" (call_expression "CONCAT44(uVar23,uVar21)" identifier (argument_list "(uVar23,uVar21)" ( identifier , identifier ))) == identifier)) ;) (if_statement "if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }" { (expression_statement "*(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);" (assignment_expression "*(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" (pointer_expression "*(longlong *)puVar12" * (cast_expression "(longlong *)puVar12" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" identifier (argument_list "(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" ( (binary_expression "uVar23 + (0xfffffffe < uVar21)" identifier + (parenthesized_expression "(0xfffffffe < uVar21)" ( (binary_expression "0xfffffffe < uVar21" number_literal < identifier) ))) , (binary_expression "uVar21 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" else (compound_statement "{\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" { (expression_statement "uVar23 = (uint)((ulonglong)lVar1 >> 0x20);" (assignment_expression "uVar23 = (uint)((ulonglong)lVar1 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar21 = (uint)lVar1;" (assignment_expression "uVar21 = (uint)lVar1" identifier = (cast_expression "(uint)lVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) ;) (expression_statement "iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);" (assignment_expression "iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" identifier = (call_expression "SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" identifier (argument_list "(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" ( identifier , (string_literal ""Polynomial/Image"" " string_content ") , (pointer_expression "*(undefined4 *)param_1[9]" * (cast_expression "(undefined4 *)param_1[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)param_1[9])[1]" (parenthesized_expression "((undefined4 *)param_1[9])" ( (cast_expression "(undefined4 *)param_1[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ])) )) [ number_literal ]) )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0018f4d1;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0018f4d1;" goto statement_identifier ;)) })) }))) })) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != local_50)" ( (binary_expression "iVar15 != local_50" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 < 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (binary_expression IDENT * IDENT) + (subscript_expression IDENT [ IDENT ]))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < IDENT) ))) , (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (unary_expression ! IDENT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0018f080(int *param_1)\n\n{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0018f080(int *param_1)" (identifier "FUN_0018f080") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  longlong lVar1;\n  double dVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  double *pdVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  int *piVar11;\n  uint *puVar12;\n  float fVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  undefined4 uVar18;\n  int iVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  double *pdVar24;\n  int iVar25;\n  bool bVar26;\n  double dVar27;\n  int local_68;\n  int local_64;\n  int local_5c;\n  double *local_58;\n  int local_54;\n  int local_50;\n  double *local_4c;\n  \n  local_50 = omp_get_num_threads();\n  iVar14 = omp_get_thread_num();\n  iVar3 = param_1[5];\n  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;\n  local_50 = *(int *)(iVar3 + 0x1c) % local_50;\n  if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }\n  local_50 = iVar14 * iVar15 + local_50;\n  iVar15 = iVar15 + local_50;\n  if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }\n  return;\n}" ({ "{") (declaration "longlong lVar1;" (type_identifier "longlong") (identifier "lVar1") (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "double *pdVar7;" (primitive_type "double") (pointer_declarator "*pdVar7" (* "*") (identifier "pdVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "double *pdVar10;" (primitive_type "double") (pointer_declarator "*pdVar10" (* "*") (identifier "pdVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "float fVar13;" (primitive_type "float") (identifier "fVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "double *pdVar17;" (primitive_type "double") (pointer_declarator "*pdVar17" (* "*") (identifier "pdVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "double *pdVar24;" (primitive_type "double") (pointer_declarator "*pdVar24" (* "*") (identifier "pdVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "double *local_58;" (primitive_type "double") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "double *local_4c;" (primitive_type "double") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (expression_statement "local_50 = omp_get_num_threads();" (assignment_expression "local_50 = omp_get_num_threads()" (identifier "local_50") (= "=") (call_expression "omp_get_num_threads()" (identifier "omp_get_num_threads") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar14 = omp_get_thread_num();" (assignment_expression "iVar14 = omp_get_thread_num()" (identifier "iVar14") (= "=") (call_expression "omp_get_thread_num()" (identifier "omp_get_thread_num") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" (identifier "iVar3") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar3 + 0x1c) / local_50;" (assignment_expression "iVar15 = *(int *)(iVar3 + 0x1c) / local_50" (identifier "iVar15") (= "=") (binary_expression "*(int *)(iVar3 + 0x1c) / local_50" (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "local_50"))) (; ";")) (expression_statement "local_50 = *(int *)(iVar3 + 0x1c) % local_50;" (assignment_expression "local_50 = *(int *)(iVar3 + 0x1c) % local_50" (identifier "local_50") (= "=") (binary_expression "*(int *)(iVar3 + 0x1c) % local_50" (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "local_50"))) (; ";")) (if_statement "if (iVar14 < local_50) {\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" (if "if") (parenthesized_expression "(iVar14 < local_50)" (( "(") (binary_expression "iVar14 < local_50" (identifier "iVar14") (< "<") (identifier "local_50")) () ")")) (compound_statement "{\n    iVar15 = iVar15 + 1;\n    local_50 = 0;\n  }" ({ "{") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_50 = iVar14 * iVar15 + local_50;" (assignment_expression "local_50 = iVar14 * iVar15 + local_50" (identifier "local_50") (= "=") (binary_expression "iVar14 * iVar15 + local_50" (binary_expression "iVar14 * iVar15" (identifier "iVar14") (* "*") (identifier "iVar15")) (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "iVar15 = iVar15 + local_50;" (assignment_expression "iVar15 = iVar15 + local_50" (identifier "iVar15") (= "=") (binary_expression "iVar15 + local_50" (identifier "iVar15") (+ "+") (identifier "local_50"))) (; ";")) (if_statement "if (local_50 < iVar15) {\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" (if "if") (parenthesized_expression "(local_50 < iVar15)" (( "(") (binary_expression "local_50 < iVar15" (identifier "local_50") (< "<") (identifier "iVar15")) () ")")) (compound_statement "{\n    iVar14 = param_1[7];\n    iVar4 = param_1[6];\n    iVar5 = param_1[4];\n    iVar6 = param_1[3];\n    pdVar7 = (double *)param_1[2];\n    iVar8 = param_1[1];\n    iVar9 = *param_1;\n    do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);\n  }" ({ "{") (expression_statement "iVar14 = param_1[7];" (assignment_expression "iVar14 = param_1[7]" (identifier "iVar14") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "iVar4 = param_1[6];" (assignment_expression "iVar4 = param_1[6]" (identifier "iVar4") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar5 = param_1[4];" (assignment_expression "iVar5 = param_1[4]" (identifier "iVar5") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar6 = param_1[3];" (assignment_expression "iVar6 = param_1[3]" (identifier "iVar6") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pdVar7 = (double *)param_1[2];" (assignment_expression "pdVar7 = (double *)param_1[2]" (identifier "pdVar7") (= "=") (cast_expression "(double *)param_1[2]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" (identifier "iVar8") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar9 = *param_1;" (assignment_expression "iVar9 = *param_1" (identifier "iVar9") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (do_statement "do {\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    } while (iVar15 != local_50);" (do "do") (compound_statement "{\n      iVar16 = omp_get_thread_num();\n      if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }\n      local_50 = local_50 + 1;\n    }" ({ "{") (expression_statement "iVar16 = omp_get_thread_num();" (assignment_expression "iVar16 = omp_get_thread_num()" (identifier "iVar16") (= "=") (call_expression "omp_get_thread_num()" (identifier "omp_get_thread_num") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (param_1[8] != 0) {\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);\n        if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }\n      }" ({ "{") (expression_statement "local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);" (assignment_expression "local_4c = (double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" (identifier "local_4c") (= "=") (cast_expression "(double *)\n                   QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "QueueCacheViewAuthenticPixels\n                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" (identifier "QueueCacheViewAuthenticPixels") (argument_list "(iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6)" (( "(") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (identifier "local_50") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "iVar6") () ")"))))) (; ";")) (if_statement "if (local_4c == (double *)0x0) {\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }\n        else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" (if "if") (parenthesized_expression "(local_4c == (double *)0x0)" (( "(") (binary_expression "local_4c == (double *)0x0" (identifier "local_4c") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0018f4d1:\n          param_1[8] = 0;\n        }" ({ "{") (labeled_statement "LAB_0018f4d1:\n          param_1[8] = 0;" (statement_identifier "LAB_0018f4d1") (: ":") (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" (else "else") (compound_statement "{\n          pdVar10 = *(double **)(iVar4 + iVar16 * 4);\n          local_68 = *(int *)(iVar3 + 0x18);\n          if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }\nLAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();\n          if (iVar16 == 0) {\n            param_1[8] = 0;\n          }\n          if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }\n        }" ({ "{") (expression_statement "pdVar10 = *(double **)(iVar4 + iVar16 * 4);" (assignment_expression "pdVar10 = *(double **)(iVar4 + iVar16 * 4)" (identifier "pdVar10") (= "=") (pointer_expression "*(double **)(iVar4 + iVar16 * 4)" (* "*") (cast_expression "(double **)(iVar4 + iVar16 * 4)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + iVar16 * 4)" (( "(") (binary_expression "iVar4 + iVar16 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar16 * 4" (identifier "iVar16") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "local_68 = *(int *)(iVar3 + 0x18);" (assignment_expression "local_68 = *(int *)(iVar3 + 0x18)" (identifier "local_68") (= "=") (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (local_68 < 1) {\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }\n          else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" (if "if") (parenthesized_expression "(local_68 < 1)" (( "(") (binary_expression "local_68 < 1" (identifier "local_68") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (0 < iVar14) goto LAB_0018f1eb;\n          }" ({ "{") (if_statement "if (0 < iVar14) goto LAB_0018f1eb;" (if "if") (parenthesized_expression "(0 < iVar14)" (( "(") (binary_expression "0 < iVar14" (number_literal "0") (< "<") (identifier "iVar14")) () ")")) (goto_statement "goto LAB_0018f1eb;" (goto "goto") (statement_identifier "LAB_0018f1eb") (; ";"))) (} "}")) (else_clause "else {\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" (else "else") (compound_statement "{\n            pdVar17 = pdVar10;\n            do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);\n            if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }\n            fVar13 = DAT_0029f710;\n            iVar16 = *(int *)(iVar3 + 0x298);\n            iVar19 = 0;\n            do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);\n          }" ({ "{") (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" (identifier "pdVar17") (= "=") (identifier "pdVar10")) (; ";")) (do_statement "do {\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            } while (pdVar10 + local_68 * 0x40 != pdVar24);" (do "do") (compound_statement "{\n              pdVar24 = pdVar17 + 0x40;\n              do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);\n            }" ({ "{") (expression_statement "pdVar24 = pdVar17 + 0x40;" (assignment_expression "pdVar24 = pdVar17 + 0x40" (identifier "pdVar24") (= "=") (binary_expression "pdVar17 + 0x40" (identifier "pdVar17") (+ "+") (number_literal "0x40"))) (; ";")) (do_statement "do {\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              } while (pdVar24 != pdVar17);" (do "do") (compound_statement "{\n                *pdVar17 = 0.0;\n                pdVar17 = pdVar17 + 1;\n              }" ({ "{") (expression_statement "*pdVar17 = 0.0;" (assignment_expression "*pdVar17 = 0.0" (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" (identifier "pdVar17") (= "=") (binary_expression "pdVar17 + 1" (identifier "pdVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar24 != pdVar17)" (( "(") (binary_expression "pdVar24 != pdVar17" (identifier "pdVar24") (!= "!=") (identifier "pdVar17")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar10 + local_68 * 0x40 != pdVar24)" (( "(") (binary_expression "pdVar10 + local_68 * 0x40 != pdVar24" (binary_expression "pdVar10 + local_68 * 0x40" (identifier "pdVar10") (+ "+") (binary_expression "local_68 * 0x40" (identifier "local_68") (* "*") (number_literal "0x40"))) (!= "!=") (identifier "pdVar24")) () ")")) (; ";")) (if_statement "if (0 < iVar14) {\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }" (if "if") (parenthesized_expression "(0 < iVar14)" (( "(") (binary_expression "0 < iVar14" (number_literal "0") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\nLAB_0018f1eb:\n              local_54 = 0;\n              iVar16 = iVar9;\n              local_58 = pdVar7;\n              do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);\n              local_68 = *(int *)(iVar3 + 0x18);\n              if (local_68 < 1) goto LAB_0018f43c;\n            }" ({ "{") (labeled_statement "LAB_0018f1eb:\n              local_54 = 0;" (statement_identifier "LAB_0018f1eb") (: ":") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar16 = iVar9;" (assignment_expression "iVar16 = iVar9" (identifier "iVar16") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "local_58 = pdVar7;" (assignment_expression "local_58 = pdVar7" (identifier "local_58") (= "=") (identifier "pdVar7")) (; ";")) (do_statement "do {\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              } while (local_54 < iVar14);" (do "do") (compound_statement "{\n                if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }\n                local_54 = local_54 + 1;\n                local_58 = local_58 + 2;\n              }" ({ "{") (if_statement "if (local_54 < iVar8) {\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }" (if "if") (parenthesized_expression "(local_54 < iVar8)" (( "(") (binary_expression "local_54 < iVar8" (identifier "local_54") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n                  uVar18 = AcquireVirtualCacheView(iVar16);\n                  local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);\n                  if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }\n                  if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }\n                  DestroyCacheView(uVar18);\n                  iVar16 = GetNextImageInList(iVar16);\n                }" ({ "{") (expression_statement "uVar18 = AcquireVirtualCacheView(iVar16);" (assignment_expression "uVar18 = AcquireVirtualCacheView(iVar16)" (identifier "uVar18") (= "=") (call_expression "AcquireVirtualCacheView(iVar16)" (identifier "AcquireVirtualCacheView") (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")")))) (; ";")) (expression_statement "local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);" (assignment_expression "local_64 = GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" (identifier "local_64") (= "=") (call_expression "GetCacheViewVirtualPixels\n                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" (identifier "GetCacheViewVirtualPixels") (argument_list "(uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1)" (( "(") (identifier "uVar18") (, ",") (number_literal "0") (, ",") (identifier "local_50") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (local_64 == 0) {\n                    DestroyCacheView(uVar18);\n                    break;\n                  }" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    DestroyCacheView(uVar18);\n                    break;\n                  }" ({ "{") (expression_statement "DestroyCacheView(uVar18);" (call_expression "DestroyCacheView(uVar18)" (identifier "DestroyCacheView") (argument_list "(uVar18)" (( "(") (identifier "uVar18") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(iVar3 + 0x18)) {\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar3 + 0x18))" (( "(") (binary_expression "0 < *(int *)(iVar3 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n                    local_5c = 0;\n                    pdVar17 = pdVar10;\n                    do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));\n                  }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" (identifier "pdVar17") (= "=") (identifier "pdVar10")) (; ";")) (do_statement "do {\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    } while (local_5c < *(int *)(iVar3 + 0x18));" (do "do") (compound_statement "{\n                      iVar19 = *(int *)(iVar16 + 0x298);\n                      iVar25 = 0;\n                      if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }\n                      pdVar17 = pdVar17 + 0x40;\n                      local_5c = local_5c + 1;\n                      local_64 = local_64 + iVar19 * 8;\n                    }" ({ "{") (expression_statement "iVar19 = *(int *)(iVar16 + 0x298);" (assignment_expression "iVar19 = *(int *)(iVar16 + 0x298)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar16 + 0x298)" (* "*") (cast_expression "(int *)(iVar16 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x298)" (( "(") (binary_expression "iVar16 + 0x298" (identifier "iVar16") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar19) {\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }" (if "if") (parenthesized_expression "(0 < iVar19)" (( "(") (binary_expression "0 < iVar19" (number_literal "0") (< "<") (identifier "iVar19")) () ")")) (compound_statement "{\n                        do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);\n                      }" ({ "{") (do_statement "do {\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        } while (iVar25 < iVar19);" (do "do") (compound_statement "{\n                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;\n                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;\n                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);\n                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }\n                          iVar19 = *(int *)(iVar16 + 0x298);\n                          iVar25 = iVar25 + 1;\n                        }" ({ "{") (expression_statement "iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;" (assignment_expression "iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc" (identifier "iVar22") (= "=") (binary_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc)" (( "(") (binary_expression "*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc" (pointer_expression "*(int *)(iVar3 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar3 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2a8)" (( "(") (binary_expression "iVar3 + 0x2a8" (identifier "iVar3") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (binary_expression "iVar25 * 0xc" (identifier "iVar25") (* "*") (number_literal "0xc"))) () ")")))) (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;" (assignment_expression "iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22" (identifier "iVar19") (= "=") (binary_expression "*(int *)(iVar3 + 0x2a8) + iVar22" (pointer_expression "*(int *)(iVar3 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar3 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2a8)" (( "(") (binary_expression "iVar3 + 0x2a8" (identifier "iVar3") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (identifier "iVar22"))) (; ";")) (expression_statement "uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);" (assignment_expression "uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" (* "*") (cast_expression "(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar16 + 0x2a8) + 4 + iVar22)" (( "(") (binary_expression "*(int *)(iVar16 + 0x2a8) + 4 + iVar22" (binary_expression "*(int *)(iVar16 + 0x2a8) + 4" (pointer_expression "*(int *)(iVar16 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar16 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x2a8)" (( "(") (binary_expression "iVar16 + 0x2a8" (identifier "iVar16") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "4")) (+ "+") (identifier "iVar22")) () ")"))))) (; ";")) (if_statement "if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))\n                          {\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }" (if "if") (parenthesized_expression "(((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))" (( "(") (binary_expression "((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0)" (parenthesized_expression "((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0))" (( "(") (binary_expression "(*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)" (parenthesized_expression "(*(int *)(iVar19 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar19 + 4) != 0" (pointer_expression "*(int *)(iVar19 + 4)" (* "*") (cast_expression "(int *)(iVar19 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 4)" (( "(") (binary_expression "iVar19 + 4" (identifier "iVar19") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar21 & 2) != 0)" (( "(") (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" (( "(") (binary_expression "uVar21 & 2" (identifier "uVar21") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                            dVar2 = *local_58;\n                            dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);\n                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];\n                          }" ({ "{") (expression_statement "dVar2 = *local_58;" (assignment_expression "dVar2 = *local_58" (identifier "dVar2") (= "=") (pointer_expression "*local_58" (* "*") (identifier "local_58"))) (; ";")) (expression_statement "dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1]);" (assignment_expression "dVar27 = pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" (identifier "dVar27") (= "=") (call_expression "pow(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" (identifier "pow") (argument_list "(_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),\n                                         local_58[1])" (( "(") (binary_expression "_DAT_0029f148 *\n                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" (identifier "_DAT_0029f148") (* "*") (pointer_expression "*(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" (* "*") (cast_expression "(double *)(local_64 + *(int *)(iVar19 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + *(int *)(iVar19 + 8) * 8)" (( "(") (binary_expression "local_64 + *(int *)(iVar19 + 8) * 8" (identifier "local_64") (+ "+") (binary_expression "*(int *)(iVar19 + 8) * 8" (pointer_expression "*(int *)(iVar19 + 8)" (* "*") (cast_expression "(int *)(iVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 8)" (( "(") (binary_expression "iVar19 + 8" (identifier "iVar19") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (, ",") (subscript_expression "local_58[1]" (identifier "local_58") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];" (assignment_expression "pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25]" (subscript_expression "pdVar17[iVar25]" (identifier "pdVar17") ([ "[") (identifier "iVar25") (] "]")) (= "=") (binary_expression "dVar27 * dVar2 + pdVar17[iVar25]" (binary_expression "dVar27 * dVar2" (identifier "dVar27") (* "*") (identifier "dVar2")) (+ "+") (subscript_expression "pdVar17[iVar25]" (identifier "pdVar17") ([ "[") (identifier "iVar25") (] "]")))) (; ";")) (} "}"))) (expression_statement "iVar19 = *(int *)(iVar16 + 0x298);" (assignment_expression "iVar19 = *(int *)(iVar16 + 0x298)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar16 + 0x298)" (* "*") (cast_expression "(int *)(iVar16 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x298)" (( "(") (binary_expression "iVar16 + 0x298" (identifier "iVar16") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < iVar19)" (( "(") (binary_expression "iVar25 < iVar19" (identifier "iVar25") (< "<") (identifier "iVar19")) () ")")) (; ";")) (} "}"))) (expression_statement "pdVar17 = pdVar17 + 0x40;" (assignment_expression "pdVar17 = pdVar17 + 0x40" (identifier "pdVar17") (= "=") (binary_expression "pdVar17 + 0x40" (identifier "pdVar17") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" (identifier "local_5c") (= "=") (binary_expression "local_5c + 1" (identifier "local_5c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_64 = local_64 + iVar19 * 8;" (assignment_expression "local_64 = local_64 + iVar19 * 8" (identifier "local_64") (= "=") (binary_expression "local_64 + iVar19 * 8" (identifier "local_64") (+ "+") (binary_expression "iVar19 * 8" (identifier "iVar19") (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_5c < *(int *)(iVar3 + 0x18))" (( "(") (binary_expression "local_5c < *(int *)(iVar3 + 0x18)" (identifier "local_5c") (< "<") (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "DestroyCacheView(uVar18);" (call_expression "DestroyCacheView(uVar18)" (identifier "DestroyCacheView") (argument_list "(uVar18)" (( "(") (identifier "uVar18") () ")"))) (; ";")) (expression_statement "iVar16 = GetNextImageInList(iVar16);" (assignment_expression "iVar16 = GetNextImageInList(iVar16)" (identifier "iVar16") (= "=") (call_expression "GetNextImageInList(iVar16)" (identifier "GetNextImageInList") (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")")))) (; ";")) (} "}"))) (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" (identifier "local_54") (= "=") (binary_expression "local_54 + 1" (identifier "local_54") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_58 = local_58 + 2;" (assignment_expression "local_58 = local_58 + 2" (identifier "local_58") (= "=") (binary_expression "local_58 + 2" (identifier "local_58") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_54 < iVar14)" (( "(") (binary_expression "local_54 < iVar14" (identifier "local_54") (< "<") (identifier "iVar14")) () ")")) (; ";")) (expression_statement "local_68 = *(int *)(iVar3 + 0x18);" (assignment_expression "local_68 = *(int *)(iVar3 + 0x18)" (identifier "local_68") (= "=") (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (local_68 < 1) goto LAB_0018f43c;" (if "if") (parenthesized_expression "(local_68 < 1)" (( "(") (binary_expression "local_68 < 1" (identifier "local_68") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0018f43c;" (goto "goto") (statement_identifier "LAB_0018f43c") (; ";"))) (} "}"))) (expression_statement "fVar13 = DAT_0029f710;" (assignment_expression "fVar13 = DAT_0029f710" (identifier "fVar13") (= "=") (identifier "DAT_0029f710")) (; ";")) (expression_statement "iVar16 = *(int *)(iVar3 + 0x298);" (assignment_expression "iVar16 = *(int *)(iVar3 + 0x298)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar3 + 0x298)" (* "*") (cast_expression "(int *)(iVar3 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x298)" (( "(") (binary_expression "iVar3 + 0x298" (identifier "iVar3") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            } while (iVar19 < local_68);" (do "do") (compound_statement "{\n              if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }\n              iVar19 = iVar19 + 1;\n              local_4c = local_4c + iVar16;\n              pdVar10 = pdVar10 + 0x40;\n            }" ({ "{") (if_statement "if (0 < iVar16) {\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }" (if "if") (parenthesized_expression "(0 < iVar16)" (( "(") (binary_expression "0 < iVar16" (number_literal "0") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n                piVar11 = *(int **)(iVar3 + 0x2a8);\n                piVar20 = piVar11;\n                pdVar17 = pdVar10;\n                pdVar24 = local_4c;\n                do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);\n              }" ({ "{") (expression_statement "piVar11 = *(int **)(iVar3 + 0x2a8);" (assignment_expression "piVar11 = *(int **)(iVar3 + 0x2a8)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar3 + 0x2a8)" (* "*") (cast_expression "(int **)(iVar3 + 0x2a8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x2a8)" (( "(") (binary_expression "iVar3 + 0x2a8" (identifier "iVar3") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "piVar20 = piVar11;" (assignment_expression "piVar20 = piVar11" (identifier "piVar20") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "pdVar17 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" (identifier "pdVar17") (= "=") (identifier "pdVar10")) (; ";")) (expression_statement "pdVar24 = local_4c;" (assignment_expression "pdVar24 = local_4c" (identifier "pdVar24") (= "=") (identifier "local_4c")) (; ";")) (do_statement "do {\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                } while (piVar11 + iVar16 * 3 != piVar20);" (do "do") (compound_statement "{\n                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }\n                  piVar20 = piVar20 + 3;\n                  pdVar17 = pdVar17 + 1;\n                  pdVar24 = pdVar24 + 1;\n                }" ({ "{") (if_statement "if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }" (if "if") (parenthesized_expression "((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0))" (( "(") (binary_expression "(piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)" (parenthesized_expression "(piVar11[*piVar20 * 3 + 1] != 0)" (( "(") (binary_expression "piVar11[*piVar20 * 3 + 1] != 0" (subscript_expression "piVar11[*piVar20 * 3 + 1]" (identifier "piVar11") ([ "[") (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((piVar11[*piVar20 * 3 + 1] & 2U) != 0)" (( "(") (binary_expression "(piVar11[*piVar20 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar11[*piVar20 * 3 + 1] & 2U)" (( "(") (binary_expression "piVar11[*piVar20 * 3 + 1] & 2U" (subscript_expression "piVar11[*piVar20 * 3 + 1]" (identifier "piVar11") ([ "[") (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (& "&") (number_literal "2U")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);\n                  }" ({ "{") (expression_statement "*pdVar24 = (double)(fVar13 * (float)*pdVar17);" (assignment_expression "*pdVar24 = (double)(fVar13 * (float)*pdVar17)" (pointer_expression "*pdVar24" (* "*") (identifier "pdVar24")) (= "=") (cast_expression "(double)(fVar13 * (float)*pdVar17)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(fVar13 * (float)*pdVar17)" (( "(") (binary_expression "fVar13 * (float)*pdVar17" (identifier "fVar13") (* "*") (cast_expression "(float)*pdVar17" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")))) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar20 = piVar20 + 3;" (assignment_expression "piVar20 = piVar20 + 3" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 3" (identifier "piVar20") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" (identifier "pdVar17") (= "=") (binary_expression "pdVar17 + 1" (identifier "pdVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar24 = pdVar24 + 1;" (assignment_expression "pdVar24 = pdVar24 + 1" (identifier "pdVar24") (= "=") (binary_expression "pdVar24 + 1" (identifier "pdVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar11 + iVar16 * 3 != piVar20)" (( "(") (binary_expression "piVar11 + iVar16 * 3 != piVar20" (binary_expression "piVar11 + iVar16 * 3" (identifier "piVar11") (+ "+") (binary_expression "iVar16 * 3" (identifier "iVar16") (* "*") (number_literal "3"))) (!= "!=") (identifier "piVar20")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_4c = local_4c + iVar16;" (assignment_expression "local_4c = local_4c + iVar16" (identifier "local_4c") (= "=") (binary_expression "local_4c + iVar16" (identifier "local_4c") (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "pdVar10 = pdVar10 + 0x40;" (assignment_expression "pdVar10 = pdVar10 + 0x40" (identifier "pdVar10") (= "=") (binary_expression "pdVar10 + 0x40" (identifier "pdVar10") (+ "+") (number_literal "0x40"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 < local_68)" (( "(") (binary_expression "iVar19 < local_68" (identifier "iVar19") (< "<") (identifier "local_68")) () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_0018f43c:\n          iVar16 = SyncCacheViewAuthenticPixels();" (statement_identifier "LAB_0018f43c") (: ":") (expression_statement "iVar16 = SyncCacheViewAuthenticPixels();" (assignment_expression "iVar16 = SyncCacheViewAuthenticPixels()" (identifier "iVar16") (= "=") (call_expression "SyncCacheViewAuthenticPixels()" (identifier "SyncCacheViewAuthenticPixels") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar16 == 0) {\n            param_1[8] = 0;\n          }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_1[8] = 0;\n          }" ({ "{") (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar9 + 0x300) != 0) {\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x300) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0x300) != 0" (pointer_expression "*(int *)(iVar9 + 0x300)" (* "*") (cast_expression "(int *)(iVar9 + 0x300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x300)" (( "(") (binary_expression "iVar9 + 0x300" (identifier "iVar9") (+ "+") (number_literal "0x300")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar12 = (uint *)param_1[9];\n            uVar21 = *puVar12;\n            uVar23 = puVar12[1];\n            do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);\n            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);\n            if (iVar16 == 0) goto LAB_0018f4d1;\n          }" ({ "{") (expression_statement "puVar12 = (uint *)param_1[9];" (assignment_expression "puVar12 = (uint *)param_1[9]" (identifier "puVar12") (= "=") (cast_expression "(uint *)param_1[9]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "uVar21 = *puVar12;" (assignment_expression "uVar21 = *puVar12" (identifier "uVar21") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "uVar23 = puVar12[1];" (assignment_expression "uVar23 = puVar12[1]" (identifier "uVar23") (= "=") (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (do_statement "do {\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            } while (!bVar26);" (do "do") (compound_statement "{\n              LOCK();\n              lVar1 = *(longlong *)puVar12;\n              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;\n              if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }\n              UNLOCK();\n            }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar1 = *(longlong *)puVar12;" (assignment_expression "lVar1 = *(longlong *)puVar12" (identifier "lVar1") (= "=") (pointer_expression "*(longlong *)puVar12" (* "*") (cast_expression "(longlong *)puVar12" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")))) (; ";")) (expression_statement "bVar26 = CONCAT44(uVar23,uVar21) == lVar1;" (assignment_expression "bVar26 = CONCAT44(uVar23,uVar21) == lVar1" (identifier "bVar26") (= "=") (binary_expression "CONCAT44(uVar23,uVar21) == lVar1" (call_expression "CONCAT44(uVar23,uVar21)" (identifier "CONCAT44") (argument_list "(uVar23,uVar21)" (( "(") (identifier "uVar23") (, ",") (identifier "uVar21") () ")"))) (== "==") (identifier "lVar1"))) (; ";")) (if_statement "if (bVar26) {\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }\n              else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);\n              }" ({ "{") (expression_statement "*(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);" (assignment_expression "*(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" (pointer_expression "*(longlong *)puVar12" (* "*") (cast_expression "(longlong *)puVar12" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (call_expression "CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" (identifier "CONCAT44") (argument_list "(uVar23 + (0xfffffffe < uVar21),uVar21 + 1)" (( "(") (binary_expression "uVar23 + (0xfffffffe < uVar21)" (identifier "uVar23") (+ "+") (parenthesized_expression "(0xfffffffe < uVar21)" (( "(") (binary_expression "0xfffffffe < uVar21" (number_literal "0xfffffffe") (< "<") (identifier "uVar21")) () ")"))) (, ",") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" (else "else") (compound_statement "{\n                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);\n                uVar21 = (uint)lVar1;\n              }" ({ "{") (expression_statement "uVar23 = (uint)((ulonglong)lVar1 >> 0x20);" (assignment_expression "uVar23 = (uint)((ulonglong)lVar1 >> 0x20)" (identifier "uVar23") (= "=") (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar1 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar1")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar21 = (uint)lVar1;" (assignment_expression "uVar21 = (uint)lVar1" (identifier "uVar21") (= "=") (cast_expression "(uint)lVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar1"))) (; ";")) (} "}")))) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (; ";")) (expression_statement "iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1]);" (assignment_expression "iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" (identifier "iVar16") (= "=") (call_expression "SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" (identifier "SetImageProgress") (argument_list "(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],\n                                      ((undefined4 *)param_1[9])[1])" (( "(") (identifier "iVar9") (, ",") (string_literal ""Polynomial/Image"" (" """) (string_content "Polynomial/Image") (" """)) (, ",") (pointer_expression "*(undefined4 *)param_1[9]" (* "*") (cast_expression "(undefined4 *)param_1[9]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) (, ",") (subscript_expression "((undefined4 *)param_1[9])[1]" (parenthesized_expression "((undefined4 *)param_1[9])" (( "(") (cast_expression "(undefined4 *)param_1[9]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0018f4d1;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0018f4d1;" (goto "goto") (statement_identifier "LAB_0018f4d1") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar15 != local_50)" (( "(") (binary_expression "iVar15 != local_50" (identifier "iVar15") (!= "!=") (identifier "local_50")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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 */
/* DWARF original prototype: void PolynomialImage._omp_fn.5(anon_struct_40_10_b450a9d0 * param_0) */

void __thiscall function_1(type_1 *this)

{
  type_2 var_36;
  double var_24;
  type_3 *pIVar3;
  size_t sVar4;
  type_4 **ppPVar5;
  type_5 *cache_view;
  type_6 *exception;
  double *pdVar6;
  size_t sVar7;
  type_3 *image;
  double *var_11;
  type_7 *var_31;
  type_8 PVar10;
  type_9 var_19;
  type_10 *puVar12;
  float var_29;
  int var_4;
  int var_5;
  double *var_9;
  type_5 *cache_view_00;
  size_t var_26;
  type_3 *image_00;
  type_7 *var_30;
  type_11 var_33;
  type_10 var_38;
  type_10 var_37;
  double *var_10;
  bool bVar23;
  double var_23;
  size_t var_12;
  type_12 *var_16;
  int var_25;
  double *var_28;
  int var_13;
  int var_3;
  double *var_8;
  
  var_3 = var_1();
  var_4 = var_2();
  pIVar3 = this->image;
  var_5 = (int)pIVar3->rows / var_3;
  var_3 = (int)pIVar3->rows % var_3;
  if (var_4 < var_3) {
    var_5 = var_5 + 1;
    var_3 = 0;
  }
  var_3 = var_4 * var_5 + var_3;
  var_5 = var_5 + var_3;
  if (var_3 < var_5) {
    sVar4 = this->number_images;
    ppPVar5 = this->polynomial_pixels;
    cache_view = this->polynomial_view;
    exception = this->exception;
    pdVar6 = this->terms;
    sVar7 = this->number_terms;
    image = this->images;
    do {
      var_4 = var_2();
      if (this->status != var_6) {
        var_8 = var_7(cache_view,0,var_3,pIVar3->columns,1,exception);
        if (var_8 == (type_12 *)0x0) {
LAB_0018f4d1:
          this->status = var_6;
        }
        else {
          var_11 = ppPVar5[var_4]->channel;
          var_12 = pIVar3->columns;
          if ((int)var_12 < 1) {
            if (0 < (int)sVar4) goto LAB_0018f1eb;
          }
          else {
            var_9 = var_11;
            do {
              var_10 = var_9 + 0x40;
              do {
                *var_9 = 0.0;
                var_9 = var_9 + 1;
              } while (var_10 != var_9);
            } while (var_11 + var_12 * 0x40 != var_10);
            if (0 < (int)sVar4) {
LAB_0018f1eb:
              var_13 = 0;
              image_00 = image;
              var_28 = pdVar6;
              do {
                if (var_13 < (int)sVar7) {
                  cache_view_00 = var_14(image_00,exception);
                  var_16 = var_15
                                       (cache_view_00,0,var_3,pIVar3->columns,1,exception);
                  if (var_16 == (type_12 *)0x0) {
                    var_17(cache_view_00);
                    break;
                  }
                  if (0 < (int)pIVar3->columns) {
                    var_25 = 0;
                    var_9 = var_11;
                    do {
                      var_26 = image_00->number_channels;
                      var_4 = 0;
                      if (0 < (int)var_26) {
                        do {
                          var_31 = pIVar3->channel_map;
                          PVar10 = var_31[var_4].channel;
                          var_19 = image_00->channel_map[PVar10].traits;
                          if (((var_31[PVar10].traits != var_18) &&
                              (var_19 != var_18)) &&
                             ((var_19 & var_20) != var_18)) {
                            var_24 = *var_28;
                            var_23 = var_21(var_22 * var_16[var_31[PVar10].offset],var_28[1]
                                        );
                            var_9[var_4] = var_23 * var_24 + var_9[var_4];
                          }
                          var_26 = image_00->number_channels;
                          var_4 = var_4 + 1;
                        } while (var_4 < (int)var_26);
                      }
                      var_9 = var_9 + 0x40;
                      var_25 = var_25 + 1;
                      var_16 = var_16 + var_26;
                    } while (var_25 < (int)pIVar3->columns);
                  }
                  var_17(cache_view_00);
                  image_00 = var_27(image_00);
                }
                var_13 = var_13 + 1;
                var_28 = var_28 + 2;
              } while (var_13 < (int)sVar4);
              var_12 = pIVar3->columns;
              if ((int)var_12 < 1) goto LAB_0018f43c;
            }
            var_29 = DAT_0029f710;
            var_26 = pIVar3->number_channels;
            var_4 = 0;
            do {
              if (0 < (int)var_26) {
                var_31 = pIVar3->channel_map;
                var_30 = var_31;
                var_9 = var_11;
                var_10 = var_8;
                do {
                  if ((var_31[var_30->channel].traits != var_18) &&
                     ((var_31[var_30->channel].traits & var_20) != var_18))
                  {
                    *var_10 = (double)(var_29 * (float)*var_9);
                  }
                  var_30 = var_30 + 1;
                  var_9 = var_9 + 1;
                  var_10 = var_10 + 1;
                } while (var_31 + var_26 != var_30);
              }
              var_4 = var_4 + 1;
              var_8 = var_8 + var_26;
              var_11 = var_11 + 0x40;
            } while (var_4 < (int)var_12);
          }
LAB_0018f43c:
          var_33 = var_32(cache_view,exception);
          if (var_33 == var_6) {
            this->status = var_6;
          }
          if (image->progress_monitor != (type_13)0x0) {
            puVar12 = (type_10 *)this->progress;
            var_38 = *puVar12;
            var_37 = puVar12[1];
            do {
              var_34();
              var_36 = *(type_2 *)puVar12;
              bVar23 = var_35(var_37,var_38) == var_36;
              if (bVar23) {
                *(type_2 *)puVar12 = var_35(var_37 + (0xfffffffe < var_38),var_38 + 1);
              }
              else {
                var_37 = (type_10)((type_14)var_36 >> 0x20);
                var_38 = (type_10)var_36;
              }
              var_39();
            } while (!bVar23);
            var_33 = var_40(image,"Polynomial/Image",*this->progress,
                                      (type_14)pIVar3->rows);
            if (var_33 == var_6) goto LAB_0018f4d1;
          }
        }
      }
      var_3 = var_3 + 1;
    } while (var_5 != var_3);
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(int *param_1)

{
  longlong lVar1;
  double dVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  double *pdVar7;
  int iVar8;
  int iVar9;
  double *pdVar10;
  int *piVar11;
  uint *puVar12;
  float fVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  double *pdVar17;
  undefined4 uVar18;
  int iVar19;
  int *piVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  double *pdVar24;
  int iVar25;
  bool bVar26;
  double dVar27;
  int local_68;
  int local_64;
  int local_5c;
  double *local_58;
  int local_54;
  int local_50;
  double *local_4c;
  
  local_50 = omp_get_num_threads();
  iVar14 = omp_get_thread_num();
  iVar3 = param_1[5];
  iVar15 = *(int *)(iVar3 + 0x1c) / local_50;
  local_50 = *(int *)(iVar3 + 0x1c) % local_50;
  if (iVar14 < local_50) {
    iVar15 = iVar15 + 1;
    local_50 = 0;
  }
  local_50 = iVar14 * iVar15 + local_50;
  iVar15 = iVar15 + local_50;
  if (local_50 < iVar15) {
    iVar14 = param_1[7];
    iVar4 = param_1[6];
    iVar5 = param_1[4];
    iVar6 = param_1[3];
    pdVar7 = (double *)param_1[2];
    iVar8 = param_1[1];
    iVar9 = *param_1;
    do {
      iVar16 = omp_get_thread_num();
      if (param_1[8] != 0) {
        local_4c = (double *)
                   QueueCacheViewAuthenticPixels
                             (iVar5,0,local_50,*(undefined4 *)(iVar3 + 0x18),1,iVar6);
        if (local_4c == (double *)0x0) {
LAB_0018f4d1:
          param_1[8] = 0;
        }
        else {
          pdVar10 = *(double **)(iVar4 + iVar16 * 4);
          local_68 = *(int *)(iVar3 + 0x18);
          if (local_68 < 1) {
            if (0 < iVar14) goto LAB_0018f1eb;
          }
          else {
            pdVar17 = pdVar10;
            do {
              pdVar24 = pdVar17 + 0x40;
              do {
                *pdVar17 = 0.0;
                pdVar17 = pdVar17 + 1;
              } while (pdVar24 != pdVar17);
            } while (pdVar10 + local_68 * 0x40 != pdVar24);
            if (0 < iVar14) {
LAB_0018f1eb:
              local_54 = 0;
              iVar16 = iVar9;
              local_58 = pdVar7;
              do {
                if (local_54 < iVar8) {
                  uVar18 = AcquireVirtualCacheView(iVar16);
                  local_64 = GetCacheViewVirtualPixels
                                       (uVar18,0,local_50,*(undefined4 *)(iVar3 + 0x18),1);
                  if (local_64 == 0) {
                    DestroyCacheView(uVar18);
                    break;
                  }
                  if (0 < *(int *)(iVar3 + 0x18)) {
                    local_5c = 0;
                    pdVar17 = pdVar10;
                    do {
                      iVar19 = *(int *)(iVar16 + 0x298);
                      iVar25 = 0;
                      if (0 < iVar19) {
                        do {
                          iVar22 = *(int *)(*(int *)(iVar3 + 0x2a8) + iVar25 * 0xc) * 0xc;
                          iVar19 = *(int *)(iVar3 + 0x2a8) + iVar22;
                          uVar21 = *(uint *)(*(int *)(iVar16 + 0x2a8) + 4 + iVar22);
                          if (((*(int *)(iVar19 + 4) != 0) && (uVar21 != 0)) && ((uVar21 & 2) != 0))
                          {
                            dVar2 = *local_58;
                            dVar27 = pow(_DAT_0029f148 *
                                         *(double *)(local_64 + *(int *)(iVar19 + 8) * 8),
                                         local_58[1]);
                            pdVar17[iVar25] = dVar27 * dVar2 + pdVar17[iVar25];
                          }
                          iVar19 = *(int *)(iVar16 + 0x298);
                          iVar25 = iVar25 + 1;
                        } while (iVar25 < iVar19);
                      }
                      pdVar17 = pdVar17 + 0x40;
                      local_5c = local_5c + 1;
                      local_64 = local_64 + iVar19 * 8;
                    } while (local_5c < *(int *)(iVar3 + 0x18));
                  }
                  DestroyCacheView(uVar18);
                  iVar16 = GetNextImageInList(iVar16);
                }
                local_54 = local_54 + 1;
                local_58 = local_58 + 2;
              } while (local_54 < iVar14);
              local_68 = *(int *)(iVar3 + 0x18);
              if (local_68 < 1) goto LAB_0018f43c;
            }
            fVar13 = DAT_0029f710;
            iVar16 = *(int *)(iVar3 + 0x298);
            iVar19 = 0;
            do {
              if (0 < iVar16) {
                piVar11 = *(int **)(iVar3 + 0x2a8);
                piVar20 = piVar11;
                pdVar17 = pdVar10;
                pdVar24 = local_4c;
                do {
                  if ((piVar11[*piVar20 * 3 + 1] != 0) && ((piVar11[*piVar20 * 3 + 1] & 2U) != 0)) {
                    *pdVar24 = (double)(fVar13 * (float)*pdVar17);
                  }
                  piVar20 = piVar20 + 3;
                  pdVar17 = pdVar17 + 1;
                  pdVar24 = pdVar24 + 1;
                } while (piVar11 + iVar16 * 3 != piVar20);
              }
              iVar19 = iVar19 + 1;
              local_4c = local_4c + iVar16;
              pdVar10 = pdVar10 + 0x40;
            } while (iVar19 < local_68);
          }
LAB_0018f43c:
          iVar16 = SyncCacheViewAuthenticPixels();
          if (iVar16 == 0) {
            param_1[8] = 0;
          }
          if (*(int *)(iVar9 + 0x300) != 0) {
            puVar12 = (uint *)param_1[9];
            uVar21 = *puVar12;
            uVar23 = puVar12[1];
            do {
              LOCK();
              lVar1 = *(longlong *)puVar12;
              bVar26 = CONCAT44(uVar23,uVar21) == lVar1;
              if (bVar26) {
                *(longlong *)puVar12 = CONCAT44(uVar23 + (0xfffffffe < uVar21),uVar21 + 1);
              }
              else {
                uVar23 = (uint)((ulonglong)lVar1 >> 0x20);
                uVar21 = (uint)lVar1;
              }
              UNLOCK();
            } while (!bVar26);
            iVar16 = SetImageProgress(iVar9,"Polynomial/Image",*(undefined4 *)param_1[9],
                                      ((undefined4 *)param_1[9])[1]);
            if (iVar16 == 0) goto LAB_0018f4d1;
          }
        }
      }
      local_50 = local_50 + 1;
    } while (iVar15 != local_50);
  }
  return;
}

