
/* DWARF original prototype: void MorphologyPrimitive._omp_fn.0(anon_struct_48_11_edc100a9 *
   param_0) */

void __thiscall MorphologyPrimitive__omp_fn_0(void *this)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  double *pdVar17;
  int iVar18;
  int iVar19;
  uint uVar20;
  float *pfVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int *piVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  float fVar34;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  float fVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  double dVar46;
  int iVar47;
  
  iVar29 = *(int *)((int)this + 8);
  iVar26 = *(int *)(iVar29 + 0x18);
  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar1 = PTR_LAB_003f98e0;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar47 = iVar26 / iVar3;
  iVar26 = iVar26 % iVar3;
  if (iVar4 < iVar26) {
    iVar47 = iVar47 + 1;
    iVar26 = 0;
  }
  iVar26 = iVar47 * iVar4 + iVar26;
  iVar47 = iVar47 + iVar26;
  if (iVar26 < iVar47) {
    iVar3 = *(int *)((int)this + 0x24);
    uVar5 = *(undefined4 *)((int)this + 0x1c);
    uVar6 = *(undefined4 *)((int)this + 0x18);
    uVar7 = *(undefined4 *)((int)this + 0x14);
                    /* WARNING: Load size is inaccurate */
    dVar45 = *this;
    iVar30 = *(int *)((int)this + 0x10);
    iVar4 = *(int *)((int)this + 0xc);
    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);
    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
    do {
      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)((int)this + 0x28) != 0) {
        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)
                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,
                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);
        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);
        puVar2 = PTR_LAB_003f98e0;
        if ((iVar9 == 0) || (iVar10 == 0)) {
          *(undefined4 *)((int)this + 0x28) = 0;
        }
        else {
          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);
          iVar11 = *(int *)(iVar29 + 0x2c0);
          if (0 < *(int *)(iVar29 + 0x1c)) {
            piVar27 = (int *)(iVar3 + iVar8 * 4);
            iVar8 = 0;
            dVar42 = *(double *)(puVar1 + 0x43c8);
            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);
            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);
            do {
              iVar15 = *(int *)(iVar29 + 0x2c0);
              iVar25 = iVar9 + iVar28 * iVar11 * 4;
              if (0 < iVar15) {
                iVar22 = 0;
                iVar18 = 0;
                dVar37 = *(double *)(puVar1 + 0x43c8);
                dVar40 = *(double *)(puVar2 + 0x43e8);
                dVar38 = *(double *)(puVar2 + 0x4408);
                do {
                  iVar19 = *(int *)(iVar29 + 0x2d0);
                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;
                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);
                  if (uVar13 != 0) {
                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;
                    uVar20 = *(uint *)(iVar16 + 4);
                    if (uVar20 != 0) {
                      if ((uVar13 & 1) == 0) {
                        iVar16 = *(int *)(iVar30 + 8);
                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);
                        dVar35 = dVar45;
                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {
                          if (iVar16 < 1) {
                            iVar14 = 0;
                            dVar33 = *(double *)(puVar2 + 0x4408);
                          }
                          else {
                            pfVar21 = (float *)(iVar9 + iVar18 * 4);
                            iVar19 = 0;
                            iVar14 = 0;
                            do {
                              if (!NAN(*pdVar17)) {
                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;
                                iVar14 = iVar14 + 1;
                              }
                              pdVar17 = pdVar17 + -1;
                              iVar19 = iVar19 + 1;
                              pfVar21 = pfVar21 + iVar15;
                            } while (iVar19 != iVar16);
                            dVar33 = *(double *)(puVar2 + 0x4408);
                          }
LAB_0012d5bc:
                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {
LAB_0012d644:
                            *piVar27 = *piVar27 + 1;
                            goto LAB_0012d650;
                          }
                          dVar39 = dVar33 * dVar31;
                          dVar36 = dVar31;
                        }
                        else {
                          if (iVar16 < 1) {
                            iVar14 = 0;
                            dVar33 = 0.0;
                            goto LAB_0012d5bc;
                          }
                          pfVar21 = (float *)(iVar9 + iVar18 * 4);
                          iVar23 = 0;
                          iVar14 = 0;
                          dVar33 = 0.0;
                          iVar24 = iVar9;
                          do {
                            if (!NAN(*pdVar17)) {
                              fVar34 = fVar41;
                              if (*(int *)(iVar19 + 0x34) != 0) {
                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);
                              }
                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;
                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;
                              dVar33 = dVar33 + dVar36;
                              iVar14 = iVar14 + 1;
                            }
                            pdVar17 = pdVar17 + -1;
                            iVar24 = iVar24 + iVar15 * 4;
                            iVar23 = iVar23 + 1;
                            pfVar21 = pfVar21 + iVar15;
                          } while (iVar23 != iVar16);
                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))
                          goto LAB_0012d644;
LAB_0012d650:
                          dVar36 = dVar32;
                          if (0.0 <= dVar33) {
                            dVar36 = dVar38;
                          }
                          dVar39 = dVar33 * dVar36;
                        }
                        if (dVar37 <= dVar39) {
                          dVar36 = dVar38 / dVar33;
                        }
                        else {
                          dVar36 = dVar36 / dVar37;
                        }
                        if (iVar14 != 0) {
                          dVar33 = (double)*(int *)(iVar30 + 8);
                          if (*(int *)(iVar30 + 8) < 0) {
                            dVar33 = dVar33 + dVar40;
                          }
                          dVar39 = (double)iVar14;
                          if (iVar14 < 0) {
                            dVar39 = dVar39 + dVar43;
                          }
                          dVar36 = dVar36 * (dVar33 / dVar39);
                        }
                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;
                        if (*(int *)(iVar12 + 4) != 0) {
                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);
                        }
                      }
                      else {
                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =
                             *(undefined4 *)(iVar25 + iVar18 * 4);
                      }
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar15 = *(int *)(iVar29 + 0x2c0);
                  iVar22 = iVar22 + 0xc;
                } while (iVar18 < iVar15);
              }
              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;
              iVar8 = iVar8 + 1;
              iVar9 = iVar9 + iVar15 * 4;
            } while (iVar8 < *(int *)(iVar29 + 0x1c));
          }
          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);
          if (iVar8 == 0) {
            *(undefined4 *)((int)this + 0x28) = 0;
          }
          if (*(int *)(iVar29 + 0x328) != 0) {
            piVar27 = *(int **)((int)this + 0x2c);
            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();
            uVar13 = piVar27[1] + 1;
            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;
            piVar27[1] = uVar13;
            (*(code *)PTR_GOMP_atomic_end_003fa450)();
            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)
                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,
                               **(undefined4 **)((int)this + 0x2c),
                               (*(undefined4 **)((int)this + 0x2c))[1],0,
                               *(undefined4 *)(iVar29 + 0x1c));
            if (iVar8 == 0) {
              *(undefined4 *)((int)this + 0x28) = 0;
            }
          }
        }
      }
      iVar26 = iVar26 + 1;
    } while (iVar47 != iVar26);
  }
  return;
}



void FUN_0012d24c(double *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  double *pdVar17;
  int iVar18;
  int iVar19;
  uint uVar20;
  float *pfVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int *piVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  float fVar34;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  float fVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  double dVar46;
  int iVar47;
  
  iVar29 = *(int *)(param_1 + 1);
  iVar26 = *(int *)(iVar29 + 0x18);
  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar1 = PTR_LAB_003f98e0;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar47 = iVar26 / iVar3;
  iVar26 = iVar26 % iVar3;
  if (iVar4 < iVar26) {
    iVar47 = iVar47 + 1;
    iVar26 = 0;
  }
  iVar26 = iVar47 * iVar4 + iVar26;
  iVar47 = iVar47 + iVar26;
  if (iVar26 < iVar47) {
    iVar3 = *(int *)((int)param_1 + 0x24);
    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);
    uVar6 = *(undefined4 *)(param_1 + 3);
    uVar7 = *(undefined4 *)((int)param_1 + 0x14);
    dVar45 = *param_1;
    iVar30 = *(int *)(param_1 + 2);
    iVar4 = *(int *)((int)param_1 + 0xc);
    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);
    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
    do {
      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)(param_1 + 5) != 0) {
        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)
                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,
                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);
        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);
        puVar2 = PTR_LAB_003f98e0;
        if ((iVar9 == 0) || (iVar10 == 0)) {
          *(undefined4 *)(param_1 + 5) = 0;
        }
        else {
          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);
          iVar11 = *(int *)(iVar29 + 0x2c0);
          if (0 < *(int *)(iVar29 + 0x1c)) {
            piVar27 = (int *)(iVar3 + iVar8 * 4);
            iVar8 = 0;
            dVar42 = *(double *)(puVar1 + 0x43c8);
            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);
            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);
            do {
              iVar15 = *(int *)(iVar29 + 0x2c0);
              iVar25 = iVar9 + iVar28 * iVar11 * 4;
              if (0 < iVar15) {
                iVar22 = 0;
                iVar18 = 0;
                dVar37 = *(double *)(puVar1 + 0x43c8);
                dVar40 = *(double *)(puVar2 + 0x43e8);
                dVar38 = *(double *)(puVar2 + 0x4408);
                do {
                  iVar19 = *(int *)(iVar29 + 0x2d0);
                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;
                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);
                  if (uVar13 != 0) {
                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;
                    uVar20 = *(uint *)(iVar16 + 4);
                    if (uVar20 != 0) {
                      if ((uVar13 & 1) == 0) {
                        iVar16 = *(int *)(iVar30 + 8);
                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);
                        dVar35 = dVar45;
                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {
                          if (iVar16 < 1) {
                            iVar14 = 0;
                            dVar33 = *(double *)(puVar2 + 0x4408);
                          }
                          else {
                            pfVar21 = (float *)(iVar9 + iVar18 * 4);
                            iVar19 = 0;
                            iVar14 = 0;
                            do {
                              if (!NAN(*pdVar17)) {
                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;
                                iVar14 = iVar14 + 1;
                              }
                              pdVar17 = pdVar17 + -1;
                              iVar19 = iVar19 + 1;
                              pfVar21 = pfVar21 + iVar15;
                            } while (iVar19 != iVar16);
                            dVar33 = *(double *)(puVar2 + 0x4408);
                          }
LAB_0012d5bc:
                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {
LAB_0012d644:
                            *piVar27 = *piVar27 + 1;
                            goto LAB_0012d650;
                          }
                          dVar39 = dVar33 * dVar31;
                          dVar36 = dVar31;
                        }
                        else {
                          if (iVar16 < 1) {
                            iVar14 = 0;
                            dVar33 = 0.0;
                            goto LAB_0012d5bc;
                          }
                          pfVar21 = (float *)(iVar9 + iVar18 * 4);
                          iVar23 = 0;
                          iVar14 = 0;
                          dVar33 = 0.0;
                          iVar24 = iVar9;
                          do {
                            if (!NAN(*pdVar17)) {
                              fVar34 = fVar41;
                              if (*(int *)(iVar19 + 0x34) != 0) {
                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);
                              }
                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;
                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;
                              dVar33 = dVar33 + dVar36;
                              iVar14 = iVar14 + 1;
                            }
                            pdVar17 = pdVar17 + -1;
                            iVar24 = iVar24 + iVar15 * 4;
                            iVar23 = iVar23 + 1;
                            pfVar21 = pfVar21 + iVar15;
                          } while (iVar23 != iVar16);
                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))
                          goto LAB_0012d644;
LAB_0012d650:
                          dVar36 = dVar32;
                          if (0.0 <= dVar33) {
                            dVar36 = dVar38;
                          }
                          dVar39 = dVar33 * dVar36;
                        }
                        if (dVar37 <= dVar39) {
                          dVar36 = dVar38 / dVar33;
                        }
                        else {
                          dVar36 = dVar36 / dVar37;
                        }
                        if (iVar14 != 0) {
                          dVar33 = (double)*(int *)(iVar30 + 8);
                          if (*(int *)(iVar30 + 8) < 0) {
                            dVar33 = dVar33 + dVar40;
                          }
                          dVar39 = (double)iVar14;
                          if (iVar14 < 0) {
                            dVar39 = dVar39 + dVar43;
                          }
                          dVar36 = dVar36 * (dVar33 / dVar39);
                        }
                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;
                        if (*(int *)(iVar12 + 4) != 0) {
                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);
                        }
                      }
                      else {
                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =
                             *(undefined4 *)(iVar25 + iVar18 * 4);
                      }
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar15 = *(int *)(iVar29 + 0x2c0);
                  iVar22 = iVar22 + 0xc;
                } while (iVar18 < iVar15);
              }
              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;
              iVar8 = iVar8 + 1;
              iVar9 = iVar9 + iVar15 * 4;
            } while (iVar8 < *(int *)(iVar29 + 0x1c));
          }
          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);
          if (iVar8 == 0) {
            *(undefined4 *)(param_1 + 5) = 0;
          }
          if (*(int *)(iVar29 + 0x328) != 0) {
            piVar27 = *(int **)((int)param_1 + 0x2c);
            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();
            uVar13 = piVar27[1] + 1;
            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;
            piVar27[1] = uVar13;
            (*(code *)PTR_GOMP_atomic_end_003fa450)();
            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)
                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,
                               **(undefined4 **)((int)param_1 + 0x2c),
                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,
                               *(undefined4 *)(iVar29 + 0x1c));
            if (iVar8 == 0) {
              *(undefined4 *)(param_1 + 5) = 0;
            }
          }
        }
      }
      iVar26 = iVar26 + 1;
    } while (iVar47 != iVar26);
  }
  return;
}


lui gp,0x2d
addiu gp,gp,0x4664
addu gp,gp,t9
addiu sp,sp,-0xa8
sw ra,0x74(sp)
sw s8,0x70(sp)
sw s7,0x6c(sp)
sw s6,0x68(sp)
sw s5,0x64(sp)
sw s4,0x60(sp)
sw s3,0x5c(sp)
sw s2,0x58(sp)
sw s1,0x54(sp)
sw s0,0x50(sp)
sdc1 f30,0xa0(sp)
sdc1 f28,0x98(sp)
sdc1 f26,0x90(sp)
sdc1 f24,0x88(sp)
sdc1 f22,0x80(sp)
sdc1 f20,0x78(sp)
sw gp,0x18(sp)
or s7,a0,zero
lw s4,0x8(a0)
lw s1,0x18(s4)
lw t9,-0x6f8c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s0,v0,zero
lw t9,-0x7390(gp)
jalr t9
_nop
lw gp,0x18(sp)
teq s0,zero
div s1,s0
mfhi s0
mflo v1
slt a0,v0,s0
bne a0,zero,0x0012d82c
_or s8,s0,zero
mul a0,v1,v0
addu s8,a0,s8
addu v0,v1,s8
sw v0,0x34(sp)
slt v0,s8,v0
beq v0,zero,0x0012d84c
_lw ra,0x74(sp)
lw v0,0x24(s7)
sw v0,0x4c(sp)
lw v0,0x1c(s7)
sw v0,0x40(sp)
lw v0,0x18(s7)
sw v0,0x48(sp)
lw v0,0x14(s7)
sw v0,0x44(sp)
ldc1 f28,0x0(s7)
lw s6,0x10(s7)
lw s5,0xc(s7)
lw v0,-0x7fd0(gp)
sw v0,0x30(sp)
ldc1 f26,0x43c8(v0)
lw v0,-0x7fd0(gp)
b 0x0012d360
_ldc1 f30,0x4410(v0)
sw zero,0x28(s7)
addiu s8,s8,0x1
lw v0,0x34(sp)
beq v0,s8,0x0012d84c
_lw ra,0x74(sp)
lw t9,-0x7390(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s1,v0,zero
lw v0,0x28(s7)
beq v0,zero,0x0012d350
_lw s2,0x44(sp)
lw v0,0x20(s7)
lw a2,0x4(v0)
sw s2,0x14(sp)
lw v0,0x1c(s4)
lw v1,0x8(s6)
addu v0,v0,v1
addiu v0,v0,-0x1
sw v0,0x10(sp)
li a3,0x1
subu a2,zero,a2
or a1,s8,zero
lw a0,0x48(sp)
lw t9,-0x723c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s0,v0,zero
sw s2,0x14(sp)
lw v0,0x1c(s5)
sw v0,0x10(sp)
li a3,0x1
or a2,zero,zero
or a1,s8,zero
lw a0,0x40(sp)
lw t9,-0x724c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq s0,zero,0x0012d34c
_or t8,v0,zero
beq v0,zero,0x0012d34c
_nop
lw v0,0x20(s7)
lw s3,0x4(v0)
lw v0,0x2c0(s4)
mul s3,s3,v0
lw v0,0x1c(s4)
blez v0,0x0012d460
_sll s1,s1,0x2
lw v0,0x4c(sp)
addu s1,v0,s1
sll s3,s3,0x2
or ra,zero,zero
lw t9,-0x7fd0(gp)
lw v0,0x30(sp)
ldc1 f22,0x43c8(v0)
lw s2,-0x7fd0(gp)
ldc1 f24,0x43e8(s2)
ldc1 f0,0x4408(t9)
sdc1 f0,0x38(sp)
lw v0,-0x7fd0(gp)
lwc1 f20,0x4aa8(v0)
lw v0,-0x7fd0(gp)
ldc1 f0,0x4418(v0)
b 0x0012d538
_mov.D f18,f0
lw a1,0x44(sp)
lw a0,0x40(sp)
lw t9,-0x73a0(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0012d50c
_nop
lw v0,0x328(s4)
beq v0,zero,0x0012d350
_lw t9,-0x75b4(gp)
lw s0,0x2c(s7)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x0(s0)
lw v0,0x4(s0)
addiu v1,v0,0x1
sltu v0,v1,v0
addu v0,v0,a0
sw v0,0x0(s0)
sw v1,0x4(s0)
lw t9,-0x7460(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x2c(s7)
lw a3,0x4(v0)
lw a2,0x0(v0)
lw v0,0x1c(s4)
sw v0,0x14(sp)
sw zero,0x10(sp)
lw a1,-0x7fc8(gp)
addiu a1,a1,0xbac
or a0,s4,zero
lw t9,-0x7be4(gp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x0012d350
_nop
b 0x0012d350
_sw zero,0x28(s7)
b 0x0012d480
_sw zero,0x28(s7)
sll a0,a0,0x2
lw v0,0x2c0(s5)
sll v0,v0,0x2
addu t8,t8,v0
addiu ra,ra,0x1
lw v0,0x1c(s4)
slt v0,ra,v0
beq v0,zero,0x0012d460
_addu s0,s0,a0
lw a0,0x2c0(s4)
blez a0,0x0012d514
_addu t6,s0,s3
or t1,zero,zero
or a2,zero,zero
lui t7,0x1fff
lw v0,0x30(sp)
ldc1 f6,0x43c8(v0)
ldc1 f14,0x43e8(s2)
mov.D f10,f6
ldc1 f8,0x4408(t9)
b 0x0012d6c4
_mov.D f16,f8
blez t4,0x0012d5fc
_sll a0,a0,0x2
sll a3,a2,0x2
addu a3,s0,a3
mov.D f2,f28
or t0,zero,zero
or v1,zero,zero
ldc1 f0,0x0(a1)
c.un.D f0,f0
bc1t 0x3,0x0012d5a8
_nop
lwc1 f4,0x0(a3)
cvt.d.S f4,f4
madd.D f2,f2,f4,f0
addiu v1,v1,0x1
addiu a1,a1,-0x8
addiu t0,t0,0x1
bne t0,t4,0x0012d588
_addu a3,a3,a0
ldc1 f4,0x4408(t9)
sll a0,a2,0x2
addu a0,t6,a0
lwc1 f0,0x0(a0)
cvt.d.S f0,f0
sub.D D f0,f2,f0
mfc1 a1,f0
mfhc1 a0,f0
ext a3,a0,0x0,0x1f
sw a3,0x20(sp)
sw a1,0x24(sp)
ldc1 f0,0x20(sp)
c.lt.D f26,f0
bc1t 0x5,0x0012d644
_ldc1 f0,0x38(sp)
b 0x0012d66c
_mul.D f12,f4,f0
mov.D f2,f28
or v1,zero,zero
b 0x0012d5bc
_ldc1 f4,0x4408(t9)
sll a0,a2,0x2
addu a0,t6,a0
lwc1 f0,0x0(a0)
cvt.d.S f0,f0
sub.D D f0,f2,f0
mfc1 a1,f0
mfhc1 a0,f0
ext a3,a0,0x0,0x1f
sw a3,0x28(sp)
sw a1,0x2c(sp)
ldc1 f0,0x28(sp)
c.lt.D f22,f0
bc1f 0x0012d650
_nop
lw a0,0x0(s1)
addiu a0,a0,0x1
sw a0,0x0(s1)
mtc1 zero,f0
mthc1 zero,f0
c.lt.D f4,f0
bc1f 0x1,0x0012d668
_mov.D f0,f16
mov.D f0,f18
mul.D f12,f4,f0
c.le.D f6,f12
bc1f 0x2,0x0012d764
_nop
div.D f4,f8,f4
bne v1,zero,0x0012d76c
_nop
lw v1,0x2d0(s5)
addu v0,v1,v0
lw v1,0x4(v0)
beq v1,zero,0x0012d6b0
_nop
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,t8,v0
mul.D f4,f4,f2
cvt.s.D f4,f4
swc1 f4,0x0(v0)
addiu a2,a2,0x1
lw a0,0x2c0(s4)
slt v0,a2,a0
beq v0,zero,0x0012d514
_addiu t1,t1,0xc
lw a3,0x2d0(s4)
addu v0,a3,t1
lw v1,0x0(v0)
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v1,a3,v0
lw v1,0x4(v1)
beq v1,zero,0x0012d6b0
_nop
lw a1,0x2d0(s5)
addu a1,a1,v0
lw t0,0x4(a1)
beq t0,zero,0x0012d6b0
_andi v1,v1,0x1
bne v1,zero,0x0012d80c
_nop
lw t4,0x8(s6)
ori a1,t7,0xffff
addu a1,t4,a1
sll v1,a1,0x3
lw a1,0x14(s6)
addu a1,a1,v1
lw v1,0x2bc(s4)
andi v1,v1,0x4
beq v1,zero,0x0012d56c
_andi t0,t0,0x4
beq t0,zero,0x0012d56c
_nop
blez t4,0x0012d838
_sll a0,a0,0x2
sll t0,a2,0x2
addu t0,s0,t0
mov.D f2,f28
or t3,s0,zero
or t2,zero,zero
or v1,zero,zero
mtc1 zero,f4
b 0x0012d7dc
_mthc1 zero,f4
b 0x0012d67c
_div.D f4,f0,f10
lw a0,0x8(s6)
mtc1 a0,f0
bltz a0,0x0012d794
_cvt.d.W f0,f0
mtc1 v1,f12
bltz v1,0x0012d79c
_cvt.d.W f12,f12
div.D f0,f0,f12
b 0x0012d684
_mul.D f4,f4,f0
b 0x0012d77c
_add.D f0,f0,f14
b 0x0012d788
_add.D f12,f12,f24
mov.S f0,f20
cvt.d.S f0,f0
mul.D f0,f0,f30
mul.D f0,f0,f12
lwc1 f12,0x0(t0)
cvt.d.S f12,f12
madd.D f2,f2,f12,f0
add.D f4,f4,f0
addiu v1,v1,0x1
addiu a1,a1,-0x8
addu t3,t3,a0
addiu t2,t2,0x1
beq t2,t4,0x0012d60c
_addu t0,t0,a0
ldc1 f12,0x0(a1)
c.un.D f12,f12
bc1t 0x4,0x0012d7c8
_nop
lw t5,0x34(a3)
beq t5,zero,0x0012d7a4
_nop
lw t5,0x38(a3)
sll t5,t5,0x2
addu t5,t3,t5
b 0x0012d7a8
_lwc1 f0,0x0(t5)
sll v0,a2,0x2
addu v0,t6,v0
lwc1 f0,0x0(v0)
lw v0,0x8(a1)
sll v0,v0,0x2
addu v0,t8,v0
b 0x0012d6b0
_swc1 f0,0x0(v0)
addiu v1,v1,0x1
b 0x0012d2ec
_or s8,zero,zero
mov.D f2,f28
or v1,zero,zero
mtc1 zero,f4
b 0x0012d5bc
_mthc1 zero,f4
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
ldc1 f30,0xa0(sp)
ldc1 f28,0x98(sp)
ldc1 f26,0x90(sp)
ldc1 f24,0x88(sp)
ldc1 f22,0x80(sp)
ldc1 f20,0x78(sp)
jr ra
_addiu sp,sp,0xa8
(translation_unit "void FUN_0012d24c(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0012d24c(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0012d24c(double *param_1)" identifier (parameter_list "(double *param_1)" ( (parameter_declaration "double *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier 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 "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "int iVar47;" primitive_type identifier ;) (expression_statement "iVar29 = *(int *)(param_1 + 1);" (assignment_expression "iVar29 = *(int *)(param_1 + 1)" identifier = (pointer_expression "*(int *)(param_1 + 1)" * (cast_expression "(int *)(param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(iVar29 + 0x18);" (assignment_expression "iVar26 = *(int *)(iVar29 + 0x18)" identifier = (pointer_expression "*(int *)(iVar29 + 0x18)" * (cast_expression "(int *)(iVar29 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x18)" ( (binary_expression "iVar29 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" * (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_LAB_003f98e0;" (assignment_expression "puVar1 = PTR_LAB_003f98e0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar47 = iVar26 / iVar3;" (assignment_expression "iVar47 = iVar26 / iVar3" identifier = (binary_expression "iVar26 / iVar3" identifier / identifier)) ;) (expression_statement "iVar26 = iVar26 % iVar3;" (assignment_expression "iVar26 = iVar26 % iVar3" identifier = (binary_expression "iVar26 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar26)" ( (binary_expression "iVar4 < iVar26" identifier < identifier) )) (compound_statement "{\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" { (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" identifier = (binary_expression "iVar47 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) })) (expression_statement "iVar26 = iVar47 * iVar4 + iVar26;" (assignment_expression "iVar26 = iVar47 * iVar4 + iVar26" identifier = (binary_expression "iVar47 * iVar4 + iVar26" (binary_expression "iVar47 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar47 = iVar47 + iVar26;" (assignment_expression "iVar47 = iVar47 + iVar26" identifier = (binary_expression "iVar47 + iVar26" identifier + identifier)) ;) (if_statement "if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" if (parenthesized_expression "(iVar26 < iVar47)" ( (binary_expression "iVar26 < iVar47" identifier < identifier) )) (compound_statement "{\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" { (expression_statement "iVar3 = *(int *)((int)param_1 + 0x24);" (assignment_expression "iVar3 = *(int *)((int)param_1 + 0x24)" identifier = (pointer_expression "*(int *)((int)param_1 + 0x24)" * (cast_expression "(int *)((int)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x24)" ( (binary_expression "(int)param_1 + 0x24" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)param_1 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)param_1 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)param_1 + 0x1c)" * (cast_expression "(undefined4 *)((int)param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x1c)" ( (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 3);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 3)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 3)" * (cast_expression "(undefined4 *)(param_1 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)((int)param_1 + 0x14);" (assignment_expression "uVar7 = *(undefined4 *)((int)param_1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)param_1 + 0x14)" * (cast_expression "(undefined4 *)((int)param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x14)" ( (binary_expression "(int)param_1 + 0x14" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar45 = *param_1;" (assignment_expression "dVar45 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar30 = *(int *)(param_1 + 2);" (assignment_expression "iVar30 = *(int *)(param_1 + 2)" identifier = (pointer_expression "*(int *)(param_1 + 2)" * (cast_expression "(int *)(param_1 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0xc)" identifier = (pointer_expression "*(int *)((int)param_1 + 0xc)" * (cast_expression "(int *)((int)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xc)" ( (binary_expression "(int)param_1 + 0xc" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);" do (compound_statement "{\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    }" { (expression_statement "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 5) != 0)" ( (binary_expression "*(int *)(param_1 + 5) != 0" (pointer_expression "*(int *)(param_1 + 5)" * (cast_expression "(int *)(param_1 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003fa674" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003fa674" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" ( identifier , identifier , (unary_expression "-*(int *)(*(int *)(param_1 + 4) + 4)" - (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 4)" ( (binary_expression "*(int *)(param_1 + 4) + 4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) ))))) , number_literal , (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1" (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8)" (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) + number_literal) , identifier )))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "puVar2 = PTR_LAB_003f98e0;" (assignment_expression "puVar2 = PTR_LAB_003f98e0" identifier = identifier) ;) (if_statement "if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" if (parenthesized_expression "((iVar9 == 0) || (iVar10 == 0))" ( (binary_expression "(iVar9 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          *(undefined4 *)(param_1 + 5) = 0;\n        }" { (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" { (expression_statement "iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);" (assignment_expression "iVar28 = *(int *)(*(int *)(param_1 + 4) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 4)" ( (binary_expression "*(int *)(param_1 + 4) + 4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar11 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" if (parenthesized_expression "(0 < *(int *)(iVar29 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar29 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" { (expression_statement "piVar27 = (int *)(iVar3 + iVar8 * 4);" (assignment_expression "piVar27 = (int *)(iVar3 + iVar8 * 4)" identifier = (cast_expression "(int *)(iVar3 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar8 * 4)" ( (binary_expression "iVar3 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "dVar42 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar42 = *(double *)(puVar1 + 0x43c8)" identifier = (pointer_expression "*(double *)(puVar1 + 0x43c8)" * (cast_expression "(double *)(puVar1 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x43c8)" ( (binary_expression "puVar1 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) ))))) ;) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4418" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));" do (compound_statement "{\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            }" { (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = iVar9 + iVar28 * iVar11 * 4;" (assignment_expression "iVar25 = iVar9 + iVar28 * iVar11 * 4" identifier = (binary_expression "iVar9 + iVar28 * iVar11 * 4" identifier + (binary_expression "iVar28 * iVar11 * 4" (binary_expression "iVar28 * iVar11" identifier * identifier) * number_literal))) ;) (if_statement "if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" if (parenthesized_expression "(0 < iVar15)" ( (binary_expression "0 < iVar15" number_literal < identifier) )) (compound_statement "{\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar37 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar37 = *(double *)(puVar1 + 0x43c8)" identifier = (pointer_expression "*(double *)(puVar1 + 0x43c8)" * (cast_expression "(double *)(puVar1 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x43c8)" ( (binary_expression "puVar1 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(puVar2 + 0x43e8);" (assignment_expression "dVar40 = *(double *)(puVar2 + 0x43e8)" identifier = (pointer_expression "*(double *)(puVar2 + 0x43e8)" * (cast_expression "(double *)(puVar2 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x43e8)" ( (binary_expression "puVar2 + 0x43e8" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);" do (compound_statement "{\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                }" { (expression_statement "iVar19 = *(int *)(iVar29 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar29 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2d0)" * (cast_expression "(int *)(iVar29 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2d0)" ( (binary_expression "iVar29 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar19 + iVar22) * 0xc;" (assignment_expression "iVar12 = *(int *)(iVar19 + iVar22) * 0xc" identifier = (binary_expression "*(int *)(iVar19 + iVar22) * 0xc" (pointer_expression "*(int *)(iVar19 + iVar22)" * (cast_expression "(int *)(iVar19 + iVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar22)" ( (binary_expression "iVar19 + iVar22" identifier + identifier) )))) * number_literal)) ;) (expression_statement "uVar13 = *(uint *)(iVar19 + iVar12 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar19 + iVar12 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + iVar12 + 4)" * (cast_expression "(uint *)(iVar19 + iVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar12 + 4)" ( (binary_expression "iVar19 + iVar12 + 4" (binary_expression "iVar19 + iVar12" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" { (expression_statement "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12" identifier = (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" * (cast_expression "(int *)(iVar4 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d0)" ( (binary_expression "iVar4 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar20 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" { (if_statement "if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" if (parenthesized_expression "((uVar13 & 1) == 0)" ( (binary_expression "(uVar13 & 1) == 0" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }" { (expression_statement "iVar16 = *(int *)(iVar30 + 8);" (assignment_expression "iVar16 = *(int *)(iVar30 + 8)" identifier = (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) ;) (expression_statement "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);" (assignment_expression "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" identifier = (cast_expression "(double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" ( (binary_expression "*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8" (pointer_expression "*(int *)(iVar30 + 0x14)" * (cast_expression "(int *)(iVar30 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x14)" ( (binary_expression "iVar30 + 0x14" identifier + number_literal) )))) + (binary_expression "(iVar16 + 0x1fffffff) * 8" (parenthesized_expression "(iVar16 + 0x1fffffff)" ( (binary_expression "iVar16 + 0x1fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "dVar35 = dVar45;" (assignment_expression "dVar35 = dVar45" identifier = identifier) ;) (if_statement "if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" if (parenthesized_expression "(((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0))" ( (binary_expression "((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)" (parenthesized_expression "((*(uint *)(iVar29 + 700) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar29 + 700) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 700) & 4)" ( (binary_expression "*(uint *)(iVar29 + 700) & 4" (pointer_expression "*(uint *)(iVar29 + 700)" * (cast_expression "(uint *)(iVar29 + 700)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 700)" ( (binary_expression "iVar29 + 700" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((uVar20 & 4) == 0)" ( (binary_expression "(uVar20 & 4) == 0" (parenthesized_expression "(uVar20 & 4)" ( (binary_expression "uVar20 & 4" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }" { (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" else (compound_statement "{\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" { (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar18 * 4)" ( (binary_expression "iVar9 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);" do (compound_statement "{\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            }" { (if_statement "if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" if (parenthesized_expression "(!NAN(*pdVar17))" ( (unary_expression "!NAN(*pdVar17)" ! (call_expression "NAN(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) )) (compound_statement "{\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" { (expression_statement "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35" identifier = (binary_expression "(double)*pfVar21 * *pdVar17 + dVar35" (binary_expression "(double)*pfVar21 * *pdVar17" (cast_expression "(double)*pfVar21" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) * (pointer_expression "*pdVar17" * identifier)) + identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" identifier = (binary_expression "pdVar17 + -1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" identifier = (binary_expression "pfVar21 + iVar15" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar19 != iVar16)" ( (binary_expression "iVar19 != iVar16" identifier != identifier) )) ;) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" statement_identifier : (if_statement "if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" if (parenthesized_expression "(dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" ( (binary_expression "dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier < (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" ( (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" identifier - (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" * (cast_expression "(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))))) )))) )) (compound_statement "{\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" { (labeled_statement "LAB_0012d644:\n                            *piVar27 = *piVar27 + 1;" statement_identifier : (expression_statement "*piVar27 = *piVar27 + 1;" (assignment_expression "*piVar27 = *piVar27 + 1" (pointer_expression "*piVar27" * identifier) = (binary_expression "*piVar27 + 1" (pointer_expression "*piVar27" * identifier) + number_literal)) ;)) (goto_statement "goto LAB_0012d650;" goto statement_identifier ;) }))) (expression_statement "dVar39 = dVar33 * dVar31;" (assignment_expression "dVar39 = dVar33 * dVar31" identifier = (binary_expression "dVar33 * dVar31" identifier * identifier)) ;) (expression_statement "dVar36 = dVar31;" (assignment_expression "dVar36 = dVar31" identifier = identifier) ;) }) (else_clause "else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" else (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" { (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0012d5bc;" goto statement_identifier ;) })) (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar18 * 4)" ( (binary_expression "iVar9 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) (expression_statement "iVar24 = iVar9;" (assignment_expression "iVar24 = iVar9" identifier = identifier) ;) (do_statement "do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);" do (compound_statement "{\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          }" { (if_statement "if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" if (parenthesized_expression "(!NAN(*pdVar17))" ( (unary_expression "!NAN(*pdVar17)" ! (call_expression "NAN(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) )) (compound_statement "{\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" { (expression_statement "fVar34 = fVar41;" (assignment_expression "fVar34 = fVar41" identifier = identifier) ;) (if_statement "if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" if (parenthesized_expression "(*(int *)(iVar19 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x34) != 0" (pointer_expression "*(int *)(iVar19 + 0x34)" * (cast_expression "(int *)(iVar19 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34)" ( (binary_expression "iVar19 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" { (expression_statement "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);" (assignment_expression "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" * (cast_expression "(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + *(int *)(iVar19 + 0x38) * 4)" ( (binary_expression "iVar24 + *(int *)(iVar19 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar19 + 0x38) * 4" (pointer_expression "*(int *)(iVar19 + 0x38)" * (cast_expression "(int *)(iVar19 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x38)" ( (binary_expression "iVar19 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (expression_statement "dVar36 = (double)fVar34 * dVar46 * *pdVar17;" (assignment_expression "dVar36 = (double)fVar34 * dVar46 * *pdVar17" identifier = (binary_expression "(double)fVar34 * dVar46 * *pdVar17" (binary_expression "(double)fVar34 * dVar46" (cast_expression "(double)fVar34" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) * (pointer_expression "*pdVar17" * identifier))) ;) (expression_statement "dVar35 = (double)*pfVar21 * dVar36 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * dVar36 + dVar35" identifier = (binary_expression "(double)*pfVar21 * dVar36 + dVar35" (binary_expression "(double)*pfVar21 * dVar36" (cast_expression "(double)*pfVar21" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar33 + dVar36;" (assignment_expression "dVar33 = dVar33 + dVar36" identifier = (binary_expression "dVar33 + dVar36" identifier + identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" identifier = (binary_expression "pdVar17 + -1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + iVar15 * 4;" (assignment_expression "iVar24 = iVar24 + iVar15 * 4" identifier = (binary_expression "iVar24 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" identifier = (binary_expression "pfVar21 + iVar15" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar23 != iVar16)" ( (binary_expression "iVar23 != iVar16" identifier != identifier) )) ;) (if_statement "if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;" if (parenthesized_expression "(dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" ( (binary_expression "dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier < (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" ( (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" identifier - (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" * (cast_expression "(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))))) )))) )) (goto_statement "goto LAB_0012d644;" goto statement_identifier ;)) (labeled_statement "LAB_0012d650:\n                          dVar36 = dVar32;" statement_identifier : (expression_statement "dVar36 = dVar32;" (assignment_expression "dVar36 = dVar32" identifier = identifier) ;)) (if_statement "if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }" if (parenthesized_expression "(0.0 <= dVar33)" ( (binary_expression "0.0 <= dVar33" number_literal <= identifier) )) (compound_statement "{\n                            dVar36 = dVar38;\n                          }" { (expression_statement "dVar36 = dVar38;" (assignment_expression "dVar36 = dVar38" identifier = identifier) ;) })) (expression_statement "dVar39 = dVar33 * dVar36;" (assignment_expression "dVar39 = dVar33 * dVar36" identifier = (binary_expression "dVar33 * dVar36" identifier * identifier)) ;) }))) (if_statement "if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }" if (parenthesized_expression "(dVar37 <= dVar39)" ( (binary_expression "dVar37 <= dVar39" identifier <= identifier) )) (compound_statement "{\n                          dVar36 = dVar38 / dVar33;\n                        }" { (expression_statement "dVar36 = dVar38 / dVar33;" (assignment_expression "dVar36 = dVar38 / dVar33" identifier = (binary_expression "dVar38 / dVar33" identifier / identifier)) ;) }) (else_clause "else {\n                          dVar36 = dVar36 / dVar37;\n                        }" else (compound_statement "{\n                          dVar36 = dVar36 / dVar37;\n                        }" { (expression_statement "dVar36 = dVar36 / dVar37;" (assignment_expression "dVar36 = dVar36 / dVar37" identifier = (binary_expression "dVar36 / dVar37" identifier / identifier)) ;) }))) (if_statement "if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" { (expression_statement "dVar33 = (double)*(int *)(iVar30 + 8);" (assignment_expression "dVar33 = (double)*(int *)(iVar30 + 8)" identifier = (cast_expression "(double)*(int *)(iVar30 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }" if (parenthesized_expression "(*(int *)(iVar30 + 8) < 0)" ( (binary_expression "*(int *)(iVar30 + 8) < 0" (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                            dVar33 = dVar33 + dVar40;\n                          }" { (expression_statement "dVar33 = dVar33 + dVar40;" (assignment_expression "dVar33 = dVar33 + dVar40" identifier = (binary_expression "dVar33 + dVar40" identifier + identifier)) ;) })) (expression_statement "dVar39 = (double)iVar14;" (assignment_expression "dVar39 = (double)iVar14" identifier = (cast_expression "(double)iVar14" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                            dVar39 = dVar39 + dVar43;\n                          }" { (expression_statement "dVar39 = dVar39 + dVar43;" (assignment_expression "dVar39 = dVar39 + dVar43" identifier = (binary_expression "dVar39 + dVar43" identifier + identifier)) ;) })) (expression_statement "dVar36 = dVar36 * (dVar33 / dVar39);" (assignment_expression "dVar36 = dVar36 * (dVar33 / dVar39)" identifier = (binary_expression "dVar36 * (dVar33 / dVar39)" identifier * (parenthesized_expression "(dVar33 / dVar39)" ( (binary_expression "dVar33 / dVar39" identifier / identifier) )))) ;) })) (expression_statement "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12" identifier = (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" * (cast_expression "(int *)(iVar4 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d0)" ( (binary_expression "iVar4 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" if (parenthesized_expression "(*(int *)(iVar12 + 4) != 0)" ( (binary_expression "*(int *)(iVar12 + 4) != 0" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" { (expression_statement "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);" (assignment_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35)" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar12 + 8) * 4" identifier + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)(dVar36 * dVar35)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar36 * dVar35)" ( (binary_expression "dVar36 * dVar35" identifier * identifier) )))) ;) })) }) (else_clause "else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" else (compound_statement "{\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" { (expression_statement "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);" (assignment_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4)" (pointer_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar25 + iVar18 * 4)" * (cast_expression "(undefined4 *)(iVar25 + iVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) ))))) ;) }))) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = iVar22 + 0xc;" (assignment_expression "iVar22 = iVar22 + 0xc" identifier = (binary_expression "iVar22 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < iVar15)" ( (binary_expression "iVar18 < iVar15" identifier < identifier) )) ;) })) (expression_statement "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4" identifier = (binary_expression "iVar10 + *(int *)(iVar4 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c0)" * (cast_expression "(int *)(iVar4 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c0)" ( (binary_expression "iVar4 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar9 + iVar15 * 4;" (assignment_expression "iVar9 = iVar9 + iVar15 * 4" identifier = (binary_expression "iVar9 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar8 < *(int *)(iVar29 + 0x1c))" ( (binary_expression "iVar8 < *(int *)(iVar29 + 0x1c)" identifier < (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }" if (parenthesized_expression "(*(int *)(iVar29 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar29 + 0x328) != 0" (pointer_expression "*(int *)(iVar29 + 0x328)" * (cast_expression "(int *)(iVar29 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x328)" ( (binary_expression "iVar29 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)((int)param_1 + 0x2c);" (assignment_expression "piVar27 = *(int **)((int)param_1 + 0x2c)" identifier = (pointer_expression "*(int **)((int)param_1 + 0x2c)" * (cast_expression "(int **)((int)param_1 + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x2c)" ( (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003fa2fc)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_start_003fa2fc" * (cast_expression "(code *)PTR_GOMP_atomic_start_003fa2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar13 = piVar27[1] + 1;" (assignment_expression "uVar13 = piVar27[1] + 1" identifier = (binary_expression "piVar27[1] + 1" (subscript_expression "piVar27[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;" (assignment_expression "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (pointer_expression "*piVar27" * identifier) = (binary_expression "(uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (call_expression "(uint)(uVar13 < (uint)piVar27[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < (uint)piVar27[1])" ( (binary_expression "uVar13 < (uint)piVar27[1]" identifier < (cast_expression "(uint)piVar27[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar27[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar27" * identifier))) ;) (expression_statement "piVar27[1] = uVar13;" (assignment_expression "piVar27[1] = uVar13" (subscript_expression "piVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_end_003fa450)();" (call_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_end_003fa450" * (cast_expression "(code *)PTR_GOMP_atomic_end_003fa450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" * (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" ( identifier , (binary_expression "PTR_s_ltiple_images_003f98e8 + 0xbac" identifier + number_literal) , (pointer_expression "**(undefined4 **)((int)param_1 + 0x2c)" * (pointer_expression "*(undefined4 **)((int)param_1 + 0x2c)" * (cast_expression "(undefined4 **)((int)param_1 + 0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x2c)" ( (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (subscript_expression "(*(undefined4 **)((int)param_1 + 0x2c))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 0x2c))" ( (pointer_expression "*(undefined4 **)((int)param_1 + 0x2c)" * (cast_expression "(undefined4 **)((int)param_1 + 0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x2c)" ( (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar29 + 0x1c)" * (cast_expression "(undefined4 *)(iVar29 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 5) = 0;\n            }" { (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar47 != iVar26)" ( (binary_expression "iVar47 != iVar26" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void MorphologyPrimitive._omp_fn.0(anon_struct_48_11_edc100a9 *\n   param_0) */\n\nvoid __thiscall MorphologyPrimitive__omp_fn_0(void *this)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)((int)this + 8);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)this + 0x24);\n    uVar5 = *(undefined4 *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    uVar7 = *(undefined4 *)((int)this + 0x14);\n                    /* WARNING: Load size is inaccurate */\n    dVar45 = *this;\n    iVar30 = *(int *)((int)this + 0x10);\n    iVar4 = *(int *)((int)this + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall MorphologyPrimitive__omp_fn_0(void *this)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)((int)this + 8);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)this + 0x24);\n    uVar5 = *(undefined4 *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    uVar7 = *(undefined4 *)((int)this + 0x14);\n                    /* WARNING: Load size is inaccurate */\n    dVar45 = *this;\n    iVar30 = *(int *)((int)this + 0x10);\n    iVar4 = *(int *)((int)this + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "MorphologyPrimitive__omp_fn_0(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)((int)this + 8);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)this + 0x24);\n    uVar5 = *(undefined4 *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    uVar7 = *(undefined4 *)((int)this + 0x14);\n                    /* WARNING: Load size is inaccurate */\n    dVar45 = *this;\n    iVar30 = *(int *)((int)this + 0x10);\n    iVar4 = *(int *)((int)this + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier 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 "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "int iVar47;" primitive_type identifier ;) (expression_statement "iVar29 = *(int *)((int)this + 8);" (assignment_expression "iVar29 = *(int *)((int)this + 8)" identifier = (pointer_expression "*(int *)((int)this + 8)" * (cast_expression "(int *)((int)this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 8)" ( (binary_expression "(int)this + 8" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(iVar29 + 0x18);" (assignment_expression "iVar26 = *(int *)(iVar29 + 0x18)" identifier = (pointer_expression "*(int *)(iVar29 + 0x18)" * (cast_expression "(int *)(iVar29 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x18)" ( (binary_expression "iVar29 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" * (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_LAB_003f98e0;" (assignment_expression "puVar1 = PTR_LAB_003f98e0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar47 = iVar26 / iVar3;" (assignment_expression "iVar47 = iVar26 / iVar3" identifier = (binary_expression "iVar26 / iVar3" identifier / identifier)) ;) (expression_statement "iVar26 = iVar26 % iVar3;" (assignment_expression "iVar26 = iVar26 % iVar3" identifier = (binary_expression "iVar26 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar26)" ( (binary_expression "iVar4 < iVar26" identifier < identifier) )) (compound_statement "{\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" { (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" identifier = (binary_expression "iVar47 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) })) (expression_statement "iVar26 = iVar47 * iVar4 + iVar26;" (assignment_expression "iVar26 = iVar47 * iVar4 + iVar26" identifier = (binary_expression "iVar47 * iVar4 + iVar26" (binary_expression "iVar47 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar47 = iVar47 + iVar26;" (assignment_expression "iVar47 = iVar47 + iVar26" identifier = (binary_expression "iVar47 + iVar26" identifier + identifier)) ;) (if_statement "if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)this + 0x24);\n    uVar5 = *(undefined4 *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    uVar7 = *(undefined4 *)((int)this + 0x14);\n                    /* WARNING: Load size is inaccurate */\n    dVar45 = *this;\n    iVar30 = *(int *)((int)this + 0x10);\n    iVar4 = *(int *)((int)this + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" if (parenthesized_expression "(iVar26 < iVar47)" ( (binary_expression "iVar26 < iVar47" identifier < identifier) )) (compound_statement "{\n    iVar3 = *(int *)((int)this + 0x24);\n    uVar5 = *(undefined4 *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    uVar7 = *(undefined4 *)((int)this + 0x14);\n                    /* WARNING: Load size is inaccurate */\n    dVar45 = *this;\n    iVar30 = *(int *)((int)this + 0x10);\n    iVar4 = *(int *)((int)this + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" { (expression_statement "iVar3 = *(int *)((int)this + 0x24);" (assignment_expression "iVar3 = *(int *)((int)this + 0x24)" identifier = (pointer_expression "*(int *)((int)this + 0x24)" * (cast_expression "(int *)((int)this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x24)" ( (binary_expression "(int)this + 0x24" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)this + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)this + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x1c)" * (cast_expression "(undefined4 *)((int)this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)((int)this + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)((int)this + 0x18)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x18)" * (cast_expression "(undefined4 *)((int)this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x18)" ( (binary_expression "(int)this + 0x18" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)((int)this + 0x14);" (assignment_expression "uVar7 = *(undefined4 *)((int)this + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x14)" * (cast_expression "(undefined4 *)((int)this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x14)" ( (binary_expression "(int)this + 0x14" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) comment (expression_statement "dVar45 = *this;" (assignment_expression "dVar45 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "iVar30 = *(int *)((int)this + 0x10);" (assignment_expression "iVar30 = *(int *)((int)this + 0x10)" identifier = (pointer_expression "*(int *)((int)this + 0x10)" * (cast_expression "(int *)((int)this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x10)" ( (binary_expression "(int)this + 0x10" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)this + 0xc);" (assignment_expression "iVar4 = *(int *)((int)this + 0xc)" identifier = (pointer_expression "*(int *)((int)this + 0xc)" * (cast_expression "(int *)((int)this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);" do (compound_statement "{\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    }" { (expression_statement "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)((int)this + 0x28) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)this + 0x28) != 0)" ( (binary_expression "*(int *)((int)this + 0x28) != 0" (pointer_expression "*(int *)((int)this + 0x28)" * (cast_expression "(int *)((int)this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003fa674" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003fa674" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,iVar26,-*(int *)(*(int *)((int)this + 0x20) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" ( identifier , identifier , (unary_expression "-*(int *)(*(int *)((int)this + 0x20) + 4)" - (pointer_expression "*(int *)(*(int *)((int)this + 0x20) + 4)" * (cast_expression "(int *)(*(int *)((int)this + 0x20) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)this + 0x20) + 4)" ( (binary_expression "*(int *)((int)this + 0x20) + 4" (pointer_expression "*(int *)((int)this + 0x20)" * (cast_expression "(int *)((int)this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x20)" ( (binary_expression "(int)this + 0x20" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) , number_literal , (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1" (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8)" (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) + number_literal) , identifier )))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "puVar2 = PTR_LAB_003f98e0;" (assignment_expression "puVar2 = PTR_LAB_003f98e0" identifier = identifier) ;) (if_statement "if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }" if (parenthesized_expression "((iVar9 == 0) || (iVar10 == 0))" ( (binary_expression "(iVar9 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)this + 0x28) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x28) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x28)" * (cast_expression "(undefined4 *)((int)this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }\n        }" { (expression_statement "iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4);" (assignment_expression "iVar28 = *(int *)(*(int *)((int)this + 0x20) + 4)" identifier = (pointer_expression "*(int *)(*(int *)((int)this + 0x20) + 4)" * (cast_expression "(int *)(*(int *)((int)this + 0x20) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)this + 0x20) + 4)" ( (binary_expression "*(int *)((int)this + 0x20) + 4" (pointer_expression "*(int *)((int)this + 0x20)" * (cast_expression "(int *)((int)this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x20)" ( (binary_expression "(int)this + 0x20" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar11 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" if (parenthesized_expression "(0 < *(int *)(iVar29 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar29 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" { (expression_statement "piVar27 = (int *)(iVar3 + iVar8 * 4);" (assignment_expression "piVar27 = (int *)(iVar3 + iVar8 * 4)" identifier = (cast_expression "(int *)(iVar3 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar8 * 4)" ( (binary_expression "iVar3 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "dVar42 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar42 = *(double *)(puVar1 + 0x43c8)" identifier = (pointer_expression "*(double *)(puVar1 + 0x43c8)" * (cast_expression "(double *)(puVar1 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x43c8)" ( (binary_expression "puVar1 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) ))))) ;) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4418" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));" do (compound_statement "{\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            }" { (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = iVar9 + iVar28 * iVar11 * 4;" (assignment_expression "iVar25 = iVar9 + iVar28 * iVar11 * 4" identifier = (binary_expression "iVar9 + iVar28 * iVar11 * 4" identifier + (binary_expression "iVar28 * iVar11 * 4" (binary_expression "iVar28 * iVar11" identifier * identifier) * number_literal))) ;) (if_statement "if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" if (parenthesized_expression "(0 < iVar15)" ( (binary_expression "0 < iVar15" number_literal < identifier) )) (compound_statement "{\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar37 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar37 = *(double *)(puVar1 + 0x43c8)" identifier = (pointer_expression "*(double *)(puVar1 + 0x43c8)" * (cast_expression "(double *)(puVar1 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x43c8)" ( (binary_expression "puVar1 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(puVar2 + 0x43e8);" (assignment_expression "dVar40 = *(double *)(puVar2 + 0x43e8)" identifier = (pointer_expression "*(double *)(puVar2 + 0x43e8)" * (cast_expression "(double *)(puVar2 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x43e8)" ( (binary_expression "puVar2 + 0x43e8" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);" do (compound_statement "{\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                }" { (expression_statement "iVar19 = *(int *)(iVar29 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar29 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2d0)" * (cast_expression "(int *)(iVar29 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2d0)" ( (binary_expression "iVar29 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar19 + iVar22) * 0xc;" (assignment_expression "iVar12 = *(int *)(iVar19 + iVar22) * 0xc" identifier = (binary_expression "*(int *)(iVar19 + iVar22) * 0xc" (pointer_expression "*(int *)(iVar19 + iVar22)" * (cast_expression "(int *)(iVar19 + iVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar22)" ( (binary_expression "iVar19 + iVar22" identifier + identifier) )))) * number_literal)) ;) (expression_statement "uVar13 = *(uint *)(iVar19 + iVar12 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar19 + iVar12 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + iVar12 + 4)" * (cast_expression "(uint *)(iVar19 + iVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar12 + 4)" ( (binary_expression "iVar19 + iVar12 + 4" (binary_expression "iVar19 + iVar12" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" { (expression_statement "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12" identifier = (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" * (cast_expression "(int *)(iVar4 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d0)" ( (binary_expression "iVar4 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar20 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" { (if_statement "if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" if (parenthesized_expression "((uVar13 & 1) == 0)" ( (binary_expression "(uVar13 & 1) == 0" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }" { (expression_statement "iVar16 = *(int *)(iVar30 + 8);" (assignment_expression "iVar16 = *(int *)(iVar30 + 8)" identifier = (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) ;) (expression_statement "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);" (assignment_expression "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" identifier = (cast_expression "(double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" ( (binary_expression "*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8" (pointer_expression "*(int *)(iVar30 + 0x14)" * (cast_expression "(int *)(iVar30 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x14)" ( (binary_expression "iVar30 + 0x14" identifier + number_literal) )))) + (binary_expression "(iVar16 + 0x1fffffff) * 8" (parenthesized_expression "(iVar16 + 0x1fffffff)" ( (binary_expression "iVar16 + 0x1fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "dVar35 = dVar45;" (assignment_expression "dVar35 = dVar45" identifier = identifier) ;) (if_statement "if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" if (parenthesized_expression "(((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0))" ( (binary_expression "((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)" (parenthesized_expression "((*(uint *)(iVar29 + 700) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar29 + 700) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 700) & 4)" ( (binary_expression "*(uint *)(iVar29 + 700) & 4" (pointer_expression "*(uint *)(iVar29 + 700)" * (cast_expression "(uint *)(iVar29 + 700)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 700)" ( (binary_expression "iVar29 + 700" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((uVar20 & 4) == 0)" ( (binary_expression "(uVar20 & 4) == 0" (parenthesized_expression "(uVar20 & 4)" ( (binary_expression "uVar20 & 4" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }" { (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" else (compound_statement "{\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" { (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar18 * 4)" ( (binary_expression "iVar9 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);" do (compound_statement "{\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            }" { (if_statement "if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" if (parenthesized_expression "(!NAN(*pdVar17))" ( (unary_expression "!NAN(*pdVar17)" ! (call_expression "NAN(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) )) (compound_statement "{\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" { (expression_statement "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35" identifier = (binary_expression "(double)*pfVar21 * *pdVar17 + dVar35" (binary_expression "(double)*pfVar21 * *pdVar17" (cast_expression "(double)*pfVar21" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) * (pointer_expression "*pdVar17" * identifier)) + identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" identifier = (binary_expression "pdVar17 + -1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" identifier = (binary_expression "pfVar21 + iVar15" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar19 != iVar16)" ( (binary_expression "iVar19 != iVar16" identifier != identifier) )) ;) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" statement_identifier : (if_statement "if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" if (parenthesized_expression "(dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" ( (binary_expression "dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier < (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" ( (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" identifier - (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" * (cast_expression "(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))))) )))) )) (compound_statement "{\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" { (labeled_statement "LAB_0012d644:\n                            *piVar27 = *piVar27 + 1;" statement_identifier : (expression_statement "*piVar27 = *piVar27 + 1;" (assignment_expression "*piVar27 = *piVar27 + 1" (pointer_expression "*piVar27" * identifier) = (binary_expression "*piVar27 + 1" (pointer_expression "*piVar27" * identifier) + number_literal)) ;)) (goto_statement "goto LAB_0012d650;" goto statement_identifier ;) }))) (expression_statement "dVar39 = dVar33 * dVar31;" (assignment_expression "dVar39 = dVar33 * dVar31" identifier = (binary_expression "dVar33 * dVar31" identifier * identifier)) ;) (expression_statement "dVar36 = dVar31;" (assignment_expression "dVar36 = dVar31" identifier = identifier) ;) }) (else_clause "else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" else (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" { (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0012d5bc;" goto statement_identifier ;) })) (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar18 * 4)" ( (binary_expression "iVar9 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) (expression_statement "iVar24 = iVar9;" (assignment_expression "iVar24 = iVar9" identifier = identifier) ;) (do_statement "do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);" do (compound_statement "{\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          }" { (if_statement "if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" if (parenthesized_expression "(!NAN(*pdVar17))" ( (unary_expression "!NAN(*pdVar17)" ! (call_expression "NAN(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) )) (compound_statement "{\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" { (expression_statement "fVar34 = fVar41;" (assignment_expression "fVar34 = fVar41" identifier = identifier) ;) (if_statement "if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" if (parenthesized_expression "(*(int *)(iVar19 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x34) != 0" (pointer_expression "*(int *)(iVar19 + 0x34)" * (cast_expression "(int *)(iVar19 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34)" ( (binary_expression "iVar19 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" { (expression_statement "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);" (assignment_expression "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" * (cast_expression "(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + *(int *)(iVar19 + 0x38) * 4)" ( (binary_expression "iVar24 + *(int *)(iVar19 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar19 + 0x38) * 4" (pointer_expression "*(int *)(iVar19 + 0x38)" * (cast_expression "(int *)(iVar19 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x38)" ( (binary_expression "iVar19 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (expression_statement "dVar36 = (double)fVar34 * dVar46 * *pdVar17;" (assignment_expression "dVar36 = (double)fVar34 * dVar46 * *pdVar17" identifier = (binary_expression "(double)fVar34 * dVar46 * *pdVar17" (binary_expression "(double)fVar34 * dVar46" (cast_expression "(double)fVar34" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) * (pointer_expression "*pdVar17" * identifier))) ;) (expression_statement "dVar35 = (double)*pfVar21 * dVar36 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * dVar36 + dVar35" identifier = (binary_expression "(double)*pfVar21 * dVar36 + dVar35" (binary_expression "(double)*pfVar21 * dVar36" (cast_expression "(double)*pfVar21" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar33 + dVar36;" (assignment_expression "dVar33 = dVar33 + dVar36" identifier = (binary_expression "dVar33 + dVar36" identifier + identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" identifier = (binary_expression "pdVar17 + -1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + iVar15 * 4;" (assignment_expression "iVar24 = iVar24 + iVar15 * 4" identifier = (binary_expression "iVar24 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" identifier = (binary_expression "pfVar21 + iVar15" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar23 != iVar16)" ( (binary_expression "iVar23 != iVar16" identifier != identifier) )) ;) (if_statement "if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;" if (parenthesized_expression "(dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" ( (binary_expression "dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier < (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" ( (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" identifier - (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" * (cast_expression "(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))))) )))) )) (goto_statement "goto LAB_0012d644;" goto statement_identifier ;)) (labeled_statement "LAB_0012d650:\n                          dVar36 = dVar32;" statement_identifier : (expression_statement "dVar36 = dVar32;" (assignment_expression "dVar36 = dVar32" identifier = identifier) ;)) (if_statement "if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }" if (parenthesized_expression "(0.0 <= dVar33)" ( (binary_expression "0.0 <= dVar33" number_literal <= identifier) )) (compound_statement "{\n                            dVar36 = dVar38;\n                          }" { (expression_statement "dVar36 = dVar38;" (assignment_expression "dVar36 = dVar38" identifier = identifier) ;) })) (expression_statement "dVar39 = dVar33 * dVar36;" (assignment_expression "dVar39 = dVar33 * dVar36" identifier = (binary_expression "dVar33 * dVar36" identifier * identifier)) ;) }))) (if_statement "if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }" if (parenthesized_expression "(dVar37 <= dVar39)" ( (binary_expression "dVar37 <= dVar39" identifier <= identifier) )) (compound_statement "{\n                          dVar36 = dVar38 / dVar33;\n                        }" { (expression_statement "dVar36 = dVar38 / dVar33;" (assignment_expression "dVar36 = dVar38 / dVar33" identifier = (binary_expression "dVar38 / dVar33" identifier / identifier)) ;) }) (else_clause "else {\n                          dVar36 = dVar36 / dVar37;\n                        }" else (compound_statement "{\n                          dVar36 = dVar36 / dVar37;\n                        }" { (expression_statement "dVar36 = dVar36 / dVar37;" (assignment_expression "dVar36 = dVar36 / dVar37" identifier = (binary_expression "dVar36 / dVar37" identifier / identifier)) ;) }))) (if_statement "if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" { (expression_statement "dVar33 = (double)*(int *)(iVar30 + 8);" (assignment_expression "dVar33 = (double)*(int *)(iVar30 + 8)" identifier = (cast_expression "(double)*(int *)(iVar30 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }" if (parenthesized_expression "(*(int *)(iVar30 + 8) < 0)" ( (binary_expression "*(int *)(iVar30 + 8) < 0" (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                            dVar33 = dVar33 + dVar40;\n                          }" { (expression_statement "dVar33 = dVar33 + dVar40;" (assignment_expression "dVar33 = dVar33 + dVar40" identifier = (binary_expression "dVar33 + dVar40" identifier + identifier)) ;) })) (expression_statement "dVar39 = (double)iVar14;" (assignment_expression "dVar39 = (double)iVar14" identifier = (cast_expression "(double)iVar14" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                            dVar39 = dVar39 + dVar43;\n                          }" { (expression_statement "dVar39 = dVar39 + dVar43;" (assignment_expression "dVar39 = dVar39 + dVar43" identifier = (binary_expression "dVar39 + dVar43" identifier + identifier)) ;) })) (expression_statement "dVar36 = dVar36 * (dVar33 / dVar39);" (assignment_expression "dVar36 = dVar36 * (dVar33 / dVar39)" identifier = (binary_expression "dVar36 * (dVar33 / dVar39)" identifier * (parenthesized_expression "(dVar33 / dVar39)" ( (binary_expression "dVar33 / dVar39" identifier / identifier) )))) ;) })) (expression_statement "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12" identifier = (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" * (cast_expression "(int *)(iVar4 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d0)" ( (binary_expression "iVar4 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" if (parenthesized_expression "(*(int *)(iVar12 + 4) != 0)" ( (binary_expression "*(int *)(iVar12 + 4) != 0" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" { (expression_statement "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);" (assignment_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35)" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar12 + 8) * 4" identifier + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)(dVar36 * dVar35)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar36 * dVar35)" ( (binary_expression "dVar36 * dVar35" identifier * identifier) )))) ;) })) }) (else_clause "else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" else (compound_statement "{\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" { (expression_statement "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);" (assignment_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4)" (pointer_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar25 + iVar18 * 4)" * (cast_expression "(undefined4 *)(iVar25 + iVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) ))))) ;) }))) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = iVar22 + 0xc;" (assignment_expression "iVar22 = iVar22 + 0xc" identifier = (binary_expression "iVar22 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < iVar15)" ( (binary_expression "iVar18 < iVar15" identifier < identifier) )) ;) })) (expression_statement "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4" identifier = (binary_expression "iVar10 + *(int *)(iVar4 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c0)" * (cast_expression "(int *)(iVar4 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c0)" ( (binary_expression "iVar4 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar9 + iVar15 * 4;" (assignment_expression "iVar9 = iVar9 + iVar15 * 4" identifier = (binary_expression "iVar9 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar8 < *(int *)(iVar29 + 0x1c))" ( (binary_expression "iVar8 < *(int *)(iVar29 + 0x1c)" identifier < (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)this + 0x28) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x28) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x28)" * (cast_expression "(undefined4 *)((int)this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }" if (parenthesized_expression "(*(int *)(iVar29 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar29 + 0x328) != 0" (pointer_expression "*(int *)(iVar29 + 0x328)" * (cast_expression "(int *)(iVar29 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x328)" ( (binary_expression "iVar29 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar27 = *(int **)((int)this + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)((int)this + 0x2c);" (assignment_expression "piVar27 = *(int **)((int)this + 0x2c)" identifier = (pointer_expression "*(int **)((int)this + 0x2c)" * (cast_expression "(int **)((int)this + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x2c)" ( (binary_expression "(int)this + 0x2c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003fa2fc)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_start_003fa2fc" * (cast_expression "(code *)PTR_GOMP_atomic_start_003fa2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar13 = piVar27[1] + 1;" (assignment_expression "uVar13 = piVar27[1] + 1" identifier = (binary_expression "piVar27[1] + 1" (subscript_expression "piVar27[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;" (assignment_expression "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (pointer_expression "*piVar27" * identifier) = (binary_expression "(uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (call_expression "(uint)(uVar13 < (uint)piVar27[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < (uint)piVar27[1])" ( (binary_expression "uVar13 < (uint)piVar27[1]" identifier < (cast_expression "(uint)piVar27[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar27[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar27" * identifier))) ;) (expression_statement "piVar27[1] = uVar13;" (assignment_expression "piVar27[1] = uVar13" (subscript_expression "piVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_end_003fa450)();" (call_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_end_003fa450" * (cast_expression "(code *)PTR_GOMP_atomic_end_003fa450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" * (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)this + 0x2c),\n                               (*(undefined4 **)((int)this + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" ( identifier , (binary_expression "PTR_s_ltiple_images_003f98e8 + 0xbac" identifier + number_literal) , (pointer_expression "**(undefined4 **)((int)this + 0x2c)" * (pointer_expression "*(undefined4 **)((int)this + 0x2c)" * (cast_expression "(undefined4 **)((int)this + 0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x2c)" ( (binary_expression "(int)this + 0x2c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (subscript_expression "(*(undefined4 **)((int)this + 0x2c))[1]" (parenthesized_expression "(*(undefined4 **)((int)this + 0x2c))" ( (pointer_expression "*(undefined4 **)((int)this + 0x2c)" * (cast_expression "(undefined4 **)((int)this + 0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x2c)" ( (binary_expression "(int)this + 0x2c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar29 + 0x1c)" * (cast_expression "(undefined4 *)(iVar29 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) {\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)this + 0x28) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)this + 0x28) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x28) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x28)" * (cast_expression "(undefined4 *)((int)this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar47 != iVar26)" ( (binary_expression "iVar47 != iVar26" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0012d24c(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0012d24c(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0012d24c(double *param_1)" identifier (parameter_list "(double *param_1)" ( (parameter_declaration "double *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier 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 "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "int iVar47;" primitive_type identifier ;) (expression_statement "iVar29 = *(int *)(param_1 + 1);" (assignment_expression "iVar29 = *(int *)(param_1 + 1)" identifier = (pointer_expression "*(int *)(param_1 + 1)" * (cast_expression "(int *)(param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(iVar29 + 0x18);" (assignment_expression "iVar26 = *(int *)(iVar29 + 0x18)" identifier = (pointer_expression "*(int *)(iVar29 + 0x18)" * (cast_expression "(int *)(iVar29 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x18)" ( (binary_expression "iVar29 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" * (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_LAB_003f98e0;" (assignment_expression "puVar1 = PTR_LAB_003f98e0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar47 = iVar26 / iVar3;" (assignment_expression "iVar47 = iVar26 / iVar3" identifier = (binary_expression "iVar26 / iVar3" identifier / identifier)) ;) (expression_statement "iVar26 = iVar26 % iVar3;" (assignment_expression "iVar26 = iVar26 % iVar3" identifier = (binary_expression "iVar26 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar26)" ( (binary_expression "iVar4 < iVar26" identifier < identifier) )) (compound_statement "{\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" { (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" identifier = (binary_expression "iVar47 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) })) (expression_statement "iVar26 = iVar47 * iVar4 + iVar26;" (assignment_expression "iVar26 = iVar47 * iVar4 + iVar26" identifier = (binary_expression "iVar47 * iVar4 + iVar26" (binary_expression "iVar47 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar47 = iVar47 + iVar26;" (assignment_expression "iVar47 = iVar47 + iVar26" identifier = (binary_expression "iVar47 + iVar26" identifier + identifier)) ;) (if_statement "if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" if (parenthesized_expression "(iVar26 < iVar47)" ( (binary_expression "iVar26 < iVar47" identifier < identifier) )) (compound_statement "{\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" { (expression_statement "iVar3 = *(int *)((int)param_1 + 0x24);" (assignment_expression "iVar3 = *(int *)((int)param_1 + 0x24)" identifier = (pointer_expression "*(int *)((int)param_1 + 0x24)" * (cast_expression "(int *)((int)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x24)" ( (binary_expression "(int)param_1 + 0x24" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)param_1 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)param_1 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)param_1 + 0x1c)" * (cast_expression "(undefined4 *)((int)param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x1c)" ( (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 3);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 3)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 3)" * (cast_expression "(undefined4 *)(param_1 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)((int)param_1 + 0x14);" (assignment_expression "uVar7 = *(undefined4 *)((int)param_1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)param_1 + 0x14)" * (cast_expression "(undefined4 *)((int)param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x14)" ( (binary_expression "(int)param_1 + 0x14" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar45 = *param_1;" (assignment_expression "dVar45 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar30 = *(int *)(param_1 + 2);" (assignment_expression "iVar30 = *(int *)(param_1 + 2)" identifier = (pointer_expression "*(int *)(param_1 + 2)" * (cast_expression "(int *)(param_1 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0xc)" identifier = (pointer_expression "*(int *)((int)param_1 + 0xc)" * (cast_expression "(int *)((int)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xc)" ( (binary_expression "(int)param_1 + 0xc" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);" do (compound_statement "{\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    }" { (expression_statement "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 5) != 0)" ( (binary_expression "*(int *)(param_1 + 5) != 0" (pointer_expression "*(int *)(param_1 + 5)" * (cast_expression "(int *)(param_1 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003fa674" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003fa674" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" ( identifier , identifier , (unary_expression "-*(int *)(*(int *)(param_1 + 4) + 4)" - (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 4)" ( (binary_expression "*(int *)(param_1 + 4) + 4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) ))))) , number_literal , (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1" (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8)" (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) + number_literal) , identifier )))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "puVar2 = PTR_LAB_003f98e0;" (assignment_expression "puVar2 = PTR_LAB_003f98e0" identifier = identifier) ;) (if_statement "if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" if (parenthesized_expression "((iVar9 == 0) || (iVar10 == 0))" ( (binary_expression "(iVar9 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          *(undefined4 *)(param_1 + 5) = 0;\n        }" { (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" { (expression_statement "iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);" (assignment_expression "iVar28 = *(int *)(*(int *)(param_1 + 4) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 4)" ( (binary_expression "*(int *)(param_1 + 4) + 4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar11 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" if (parenthesized_expression "(0 < *(int *)(iVar29 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar29 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" { (expression_statement "piVar27 = (int *)(iVar3 + iVar8 * 4);" (assignment_expression "piVar27 = (int *)(iVar3 + iVar8 * 4)" identifier = (cast_expression "(int *)(iVar3 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar8 * 4)" ( (binary_expression "iVar3 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "dVar42 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar42 = *(double *)(puVar1 + 0x43c8)" identifier = (pointer_expression "*(double *)(puVar1 + 0x43c8)" * (cast_expression "(double *)(puVar1 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x43c8)" ( (binary_expression "puVar1 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) ))))) ;) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4418" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));" do (compound_statement "{\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            }" { (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = iVar9 + iVar28 * iVar11 * 4;" (assignment_expression "iVar25 = iVar9 + iVar28 * iVar11 * 4" identifier = (binary_expression "iVar9 + iVar28 * iVar11 * 4" identifier + (binary_expression "iVar28 * iVar11 * 4" (binary_expression "iVar28 * iVar11" identifier * identifier) * number_literal))) ;) (if_statement "if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" if (parenthesized_expression "(0 < iVar15)" ( (binary_expression "0 < iVar15" number_literal < identifier) )) (compound_statement "{\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar37 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar37 = *(double *)(puVar1 + 0x43c8)" identifier = (pointer_expression "*(double *)(puVar1 + 0x43c8)" * (cast_expression "(double *)(puVar1 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x43c8)" ( (binary_expression "puVar1 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(puVar2 + 0x43e8);" (assignment_expression "dVar40 = *(double *)(puVar2 + 0x43e8)" identifier = (pointer_expression "*(double *)(puVar2 + 0x43e8)" * (cast_expression "(double *)(puVar2 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x43e8)" ( (binary_expression "puVar2 + 0x43e8" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);" do (compound_statement "{\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                }" { (expression_statement "iVar19 = *(int *)(iVar29 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar29 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2d0)" * (cast_expression "(int *)(iVar29 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2d0)" ( (binary_expression "iVar29 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar19 + iVar22) * 0xc;" (assignment_expression "iVar12 = *(int *)(iVar19 + iVar22) * 0xc" identifier = (binary_expression "*(int *)(iVar19 + iVar22) * 0xc" (pointer_expression "*(int *)(iVar19 + iVar22)" * (cast_expression "(int *)(iVar19 + iVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar22)" ( (binary_expression "iVar19 + iVar22" identifier + identifier) )))) * number_literal)) ;) (expression_statement "uVar13 = *(uint *)(iVar19 + iVar12 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar19 + iVar12 + 4)" identifier = (pointer_expression "*(uint *)(iVar19 + iVar12 + 4)" * (cast_expression "(uint *)(iVar19 + iVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar12 + 4)" ( (binary_expression "iVar19 + iVar12 + 4" (binary_expression "iVar19 + iVar12" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" { (expression_statement "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12" identifier = (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" * (cast_expression "(int *)(iVar4 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d0)" ( (binary_expression "iVar4 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar20 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" { (if_statement "if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" if (parenthesized_expression "((uVar13 & 1) == 0)" ( (binary_expression "(uVar13 & 1) == 0" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }" { (expression_statement "iVar16 = *(int *)(iVar30 + 8);" (assignment_expression "iVar16 = *(int *)(iVar30 + 8)" identifier = (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) ;) (expression_statement "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);" (assignment_expression "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" identifier = (cast_expression "(double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" ( (binary_expression "*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8" (pointer_expression "*(int *)(iVar30 + 0x14)" * (cast_expression "(int *)(iVar30 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x14)" ( (binary_expression "iVar30 + 0x14" identifier + number_literal) )))) + (binary_expression "(iVar16 + 0x1fffffff) * 8" (parenthesized_expression "(iVar16 + 0x1fffffff)" ( (binary_expression "iVar16 + 0x1fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "dVar35 = dVar45;" (assignment_expression "dVar35 = dVar45" identifier = identifier) ;) (if_statement "if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" if (parenthesized_expression "(((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0))" ( (binary_expression "((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)" (parenthesized_expression "((*(uint *)(iVar29 + 700) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar29 + 700) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 700) & 4)" ( (binary_expression "*(uint *)(iVar29 + 700) & 4" (pointer_expression "*(uint *)(iVar29 + 700)" * (cast_expression "(uint *)(iVar29 + 700)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 700)" ( (binary_expression "iVar29 + 700" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((uVar20 & 4) == 0)" ( (binary_expression "(uVar20 & 4) == 0" (parenthesized_expression "(uVar20 & 4)" ( (binary_expression "uVar20 & 4" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }" { (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" else (compound_statement "{\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" { (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar18 * 4)" ( (binary_expression "iVar9 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);" do (compound_statement "{\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            }" { (if_statement "if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" if (parenthesized_expression "(!NAN(*pdVar17))" ( (unary_expression "!NAN(*pdVar17)" ! (call_expression "NAN(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) )) (compound_statement "{\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" { (expression_statement "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35" identifier = (binary_expression "(double)*pfVar21 * *pdVar17 + dVar35" (binary_expression "(double)*pfVar21 * *pdVar17" (cast_expression "(double)*pfVar21" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) * (pointer_expression "*pdVar17" * identifier)) + identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" identifier = (binary_expression "pdVar17 + -1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" identifier = (binary_expression "pfVar21 + iVar15" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar19 != iVar16)" ( (binary_expression "iVar19 != iVar16" identifier != identifier) )) ;) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" identifier = (pointer_expression "*(double *)(puVar2 + 0x4408)" * (cast_expression "(double *)(puVar2 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4408)" ( (binary_expression "puVar2 + 0x4408" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" statement_identifier : (if_statement "if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" if (parenthesized_expression "(dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" ( (binary_expression "dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier < (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" ( (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" identifier - (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" * (cast_expression "(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))))) )))) )) (compound_statement "{\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" { (labeled_statement "LAB_0012d644:\n                            *piVar27 = *piVar27 + 1;" statement_identifier : (expression_statement "*piVar27 = *piVar27 + 1;" (assignment_expression "*piVar27 = *piVar27 + 1" (pointer_expression "*piVar27" * identifier) = (binary_expression "*piVar27 + 1" (pointer_expression "*piVar27" * identifier) + number_literal)) ;)) (goto_statement "goto LAB_0012d650;" goto statement_identifier ;) }))) (expression_statement "dVar39 = dVar33 * dVar31;" (assignment_expression "dVar39 = dVar33 * dVar31" identifier = (binary_expression "dVar33 * dVar31" identifier * identifier)) ;) (expression_statement "dVar36 = dVar31;" (assignment_expression "dVar36 = dVar31" identifier = identifier) ;) }) (else_clause "else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" else (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" { (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0012d5bc;" goto statement_identifier ;) })) (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar18 * 4)" ( (binary_expression "iVar9 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) (expression_statement "iVar24 = iVar9;" (assignment_expression "iVar24 = iVar9" identifier = identifier) ;) (do_statement "do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);" do (compound_statement "{\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          }" { (if_statement "if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" if (parenthesized_expression "(!NAN(*pdVar17))" ( (unary_expression "!NAN(*pdVar17)" ! (call_expression "NAN(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) )) (compound_statement "{\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" { (expression_statement "fVar34 = fVar41;" (assignment_expression "fVar34 = fVar41" identifier = identifier) ;) (if_statement "if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" if (parenthesized_expression "(*(int *)(iVar19 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x34) != 0" (pointer_expression "*(int *)(iVar19 + 0x34)" * (cast_expression "(int *)(iVar19 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34)" ( (binary_expression "iVar19 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" { (expression_statement "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);" (assignment_expression "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" * (cast_expression "(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + *(int *)(iVar19 + 0x38) * 4)" ( (binary_expression "iVar24 + *(int *)(iVar19 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar19 + 0x38) * 4" (pointer_expression "*(int *)(iVar19 + 0x38)" * (cast_expression "(int *)(iVar19 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x38)" ( (binary_expression "iVar19 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) })) (expression_statement "dVar36 = (double)fVar34 * dVar46 * *pdVar17;" (assignment_expression "dVar36 = (double)fVar34 * dVar46 * *pdVar17" identifier = (binary_expression "(double)fVar34 * dVar46 * *pdVar17" (binary_expression "(double)fVar34 * dVar46" (cast_expression "(double)fVar34" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) * (pointer_expression "*pdVar17" * identifier))) ;) (expression_statement "dVar35 = (double)*pfVar21 * dVar36 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * dVar36 + dVar35" identifier = (binary_expression "(double)*pfVar21 * dVar36 + dVar35" (binary_expression "(double)*pfVar21 * dVar36" (cast_expression "(double)*pfVar21" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar33 + dVar36;" (assignment_expression "dVar33 = dVar33 + dVar36" identifier = (binary_expression "dVar33 + dVar36" identifier + identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" identifier = (binary_expression "pdVar17 + -1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + iVar15 * 4;" (assignment_expression "iVar24 = iVar24 + iVar15 * 4" identifier = (binary_expression "iVar24 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" identifier = (binary_expression "pfVar21 + iVar15" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar23 != iVar16)" ( (binary_expression "iVar23 != iVar16" identifier != identifier) )) ;) (if_statement "if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;" if (parenthesized_expression "(dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" ( (binary_expression "dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier < (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" identifier (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" ( (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" identifier - (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" * (cast_expression "(float *)(iVar25 + iVar18 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))))) )))) )) (goto_statement "goto LAB_0012d644;" goto statement_identifier ;)) (labeled_statement "LAB_0012d650:\n                          dVar36 = dVar32;" statement_identifier : (expression_statement "dVar36 = dVar32;" (assignment_expression "dVar36 = dVar32" identifier = identifier) ;)) (if_statement "if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }" if (parenthesized_expression "(0.0 <= dVar33)" ( (binary_expression "0.0 <= dVar33" number_literal <= identifier) )) (compound_statement "{\n                            dVar36 = dVar38;\n                          }" { (expression_statement "dVar36 = dVar38;" (assignment_expression "dVar36 = dVar38" identifier = identifier) ;) })) (expression_statement "dVar39 = dVar33 * dVar36;" (assignment_expression "dVar39 = dVar33 * dVar36" identifier = (binary_expression "dVar33 * dVar36" identifier * identifier)) ;) }))) (if_statement "if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }" if (parenthesized_expression "(dVar37 <= dVar39)" ( (binary_expression "dVar37 <= dVar39" identifier <= identifier) )) (compound_statement "{\n                          dVar36 = dVar38 / dVar33;\n                        }" { (expression_statement "dVar36 = dVar38 / dVar33;" (assignment_expression "dVar36 = dVar38 / dVar33" identifier = (binary_expression "dVar38 / dVar33" identifier / identifier)) ;) }) (else_clause "else {\n                          dVar36 = dVar36 / dVar37;\n                        }" else (compound_statement "{\n                          dVar36 = dVar36 / dVar37;\n                        }" { (expression_statement "dVar36 = dVar36 / dVar37;" (assignment_expression "dVar36 = dVar36 / dVar37" identifier = (binary_expression "dVar36 / dVar37" identifier / identifier)) ;) }))) (if_statement "if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" { (expression_statement "dVar33 = (double)*(int *)(iVar30 + 8);" (assignment_expression "dVar33 = (double)*(int *)(iVar30 + 8)" identifier = (cast_expression "(double)*(int *)(iVar30 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }" if (parenthesized_expression "(*(int *)(iVar30 + 8) < 0)" ( (binary_expression "*(int *)(iVar30 + 8) < 0" (pointer_expression "*(int *)(iVar30 + 8)" * (cast_expression "(int *)(iVar30 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                            dVar33 = dVar33 + dVar40;\n                          }" { (expression_statement "dVar33 = dVar33 + dVar40;" (assignment_expression "dVar33 = dVar33 + dVar40" identifier = (binary_expression "dVar33 + dVar40" identifier + identifier)) ;) })) (expression_statement "dVar39 = (double)iVar14;" (assignment_expression "dVar39 = (double)iVar14" identifier = (cast_expression "(double)iVar14" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                            dVar39 = dVar39 + dVar43;\n                          }" { (expression_statement "dVar39 = dVar39 + dVar43;" (assignment_expression "dVar39 = dVar39 + dVar43" identifier = (binary_expression "dVar39 + dVar43" identifier + identifier)) ;) })) (expression_statement "dVar36 = dVar36 * (dVar33 / dVar39);" (assignment_expression "dVar36 = dVar36 * (dVar33 / dVar39)" identifier = (binary_expression "dVar36 * (dVar33 / dVar39)" identifier * (parenthesized_expression "(dVar33 / dVar39)" ( (binary_expression "dVar33 / dVar39" identifier / identifier) )))) ;) })) (expression_statement "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12" identifier = (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" * (cast_expression "(int *)(iVar4 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d0)" ( (binary_expression "iVar4 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" if (parenthesized_expression "(*(int *)(iVar12 + 4) != 0)" ( (binary_expression "*(int *)(iVar12 + 4) != 0" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" { (expression_statement "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);" (assignment_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35)" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar12 + 8) * 4" identifier + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)(dVar36 * dVar35)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar36 * dVar35)" ( (binary_expression "dVar36 * dVar35" identifier * identifier) )))) ;) })) }) (else_clause "else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" else (compound_statement "{\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" { (expression_statement "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);" (assignment_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4)" (pointer_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar25 + iVar18 * 4)" * (cast_expression "(undefined4 *)(iVar25 + iVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar18 * 4)" ( (binary_expression "iVar25 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) ))))) ;) }))) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar29 + 0x2c0)" * (cast_expression "(int *)(iVar29 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x2c0)" ( (binary_expression "iVar29 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = iVar22 + 0xc;" (assignment_expression "iVar22 = iVar22 + 0xc" identifier = (binary_expression "iVar22 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < iVar15)" ( (binary_expression "iVar18 < iVar15" identifier < identifier) )) ;) })) (expression_statement "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4" identifier = (binary_expression "iVar10 + *(int *)(iVar4 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c0)" * (cast_expression "(int *)(iVar4 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c0)" ( (binary_expression "iVar4 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar9 + iVar15 * 4;" (assignment_expression "iVar9 = iVar9 + iVar15 * 4" identifier = (binary_expression "iVar9 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar8 < *(int *)(iVar29 + 0x1c))" ( (binary_expression "iVar8 < *(int *)(iVar29 + 0x1c)" identifier < (pointer_expression "*(int *)(iVar29 + 0x1c)" * (cast_expression "(int *)(iVar29 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }" if (parenthesized_expression "(*(int *)(iVar29 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar29 + 0x328) != 0" (pointer_expression "*(int *)(iVar29 + 0x328)" * (cast_expression "(int *)(iVar29 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x328)" ( (binary_expression "iVar29 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)((int)param_1 + 0x2c);" (assignment_expression "piVar27 = *(int **)((int)param_1 + 0x2c)" identifier = (pointer_expression "*(int **)((int)param_1 + 0x2c)" * (cast_expression "(int **)((int)param_1 + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x2c)" ( (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003fa2fc)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_start_003fa2fc" * (cast_expression "(code *)PTR_GOMP_atomic_start_003fa2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar13 = piVar27[1] + 1;" (assignment_expression "uVar13 = piVar27[1] + 1" identifier = (binary_expression "piVar27[1] + 1" (subscript_expression "piVar27[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;" (assignment_expression "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (pointer_expression "*piVar27" * identifier) = (binary_expression "(uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (call_expression "(uint)(uVar13 < (uint)piVar27[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < (uint)piVar27[1])" ( (binary_expression "uVar13 < (uint)piVar27[1]" identifier < (cast_expression "(uint)piVar27[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar27[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar27" * identifier))) ;) (expression_statement "piVar27[1] = uVar13;" (assignment_expression "piVar27[1] = uVar13" (subscript_expression "piVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_end_003fa450)();" (call_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_end_003fa450" * (cast_expression "(code *)PTR_GOMP_atomic_end_003fa450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" * (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" ( identifier , (binary_expression "PTR_s_ltiple_images_003f98e8 + 0xbac" identifier + number_literal) , (pointer_expression "**(undefined4 **)((int)param_1 + 0x2c)" * (pointer_expression "*(undefined4 **)((int)param_1 + 0x2c)" * (cast_expression "(undefined4 **)((int)param_1 + 0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x2c)" ( (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (subscript_expression "(*(undefined4 **)((int)param_1 + 0x2c))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 0x2c))" ( (pointer_expression "*(undefined4 **)((int)param_1 + 0x2c)" * (cast_expression "(undefined4 **)((int)param_1 + 0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x2c)" ( (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar29 + 0x1c)" * (cast_expression "(undefined4 *)(iVar29 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x1c)" ( (binary_expression "iVar29 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 5) = 0;\n            }" { (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar47 != iVar26)" ( (binary_expression "iVar47 != iVar26" 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression 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 = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , LIT , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (binary_expression IDENT * IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = 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) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) * (pointer_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 + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) 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) ))))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))))) )))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) * (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (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))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))))) )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression 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 = (binary_expression IDENT / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT / 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) , (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) [ LIT ]) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0012d24c(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0012d24c(double *param_1)" (identifier "FUN_0012d24c") (parameter_list "(double *param_1)" (( "(") (parameter_declaration "double *param_1" (primitive_type "double") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  double *pdVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  float *pfVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *piVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  int iVar47;\n  \n  iVar29 = *(int *)(param_1 + 1);\n  iVar26 = *(int *)(iVar29 + 0x18);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar1 = PTR_LAB_003f98e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar47 = iVar26 / iVar3;\n  iVar26 = iVar26 % iVar3;\n  if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }\n  iVar26 = iVar47 * iVar4 + iVar26;\n  iVar47 = iVar47 + iVar26;\n  if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (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 "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "float *pfVar21;" (primitive_type "float") (pointer_declarator "*pfVar21" (* "*") (identifier "pfVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "int *piVar27;" (primitive_type "int") (pointer_declarator "*piVar27" (* "*") (identifier "piVar27")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "double dVar31;" (primitive_type "double") (identifier "dVar31") (; ";")) (declaration "double dVar32;" (primitive_type "double") (identifier "dVar32") (; ";")) (declaration "double dVar33;" (primitive_type "double") (identifier "dVar33") (; ";")) (declaration "float fVar34;" (primitive_type "float") (identifier "fVar34") (; ";")) (declaration "double dVar35;" (primitive_type "double") (identifier "dVar35") (; ";")) (declaration "double dVar36;" (primitive_type "double") (identifier "dVar36") (; ";")) (declaration "double dVar37;" (primitive_type "double") (identifier "dVar37") (; ";")) (declaration "double dVar38;" (primitive_type "double") (identifier "dVar38") (; ";")) (declaration "double dVar39;" (primitive_type "double") (identifier "dVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "float fVar41;" (primitive_type "float") (identifier "fVar41") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "double dVar43;" (primitive_type "double") (identifier "dVar43") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "double dVar45;" (primitive_type "double") (identifier "dVar45") (; ";")) (declaration "double dVar46;" (primitive_type "double") (identifier "dVar46") (; ";")) (declaration "int iVar47;" (primitive_type "int") (identifier "iVar47") (; ";")) (expression_statement "iVar29 = *(int *)(param_1 + 1);" (assignment_expression "iVar29 = *(int *)(param_1 + 1)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(param_1 + 1)" (* "*") (cast_expression "(int *)(param_1 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(iVar29 + 0x18);" (assignment_expression "iVar26 = *(int *)(iVar29 + 0x18)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(iVar29 + 0x18)" (* "*") (cast_expression "(int *)(iVar29 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x18)" (( "(") (binary_expression "iVar29 + 0x18" (identifier "iVar29") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" (( "(") (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" (* "*") (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_num_threads_003fa924"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)()" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003fa520"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_LAB_003f98e0;" (assignment_expression "puVar1 = PTR_LAB_003f98e0" (identifier "puVar1") (= "=") (identifier "PTR_LAB_003f98e0")) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar47 = iVar26 / iVar3;" (assignment_expression "iVar47 = iVar26 / iVar3" (identifier "iVar47") (= "=") (binary_expression "iVar26 / iVar3" (identifier "iVar26") (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar26 = iVar26 % iVar3;" (assignment_expression "iVar26 = iVar26 % iVar3" (identifier "iVar26") (= "=") (binary_expression "iVar26 % iVar3" (identifier "iVar26") (% "%") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < iVar26) {\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar26)" (( "(") (binary_expression "iVar4 < iVar26" (identifier "iVar4") (< "<") (identifier "iVar26")) () ")")) (compound_statement "{\n    iVar47 = iVar47 + 1;\n    iVar26 = 0;\n  }" ({ "{") (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" (identifier "iVar47") (= "=") (binary_expression "iVar47 + 1" (identifier "iVar47") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar26 = iVar47 * iVar4 + iVar26;" (assignment_expression "iVar26 = iVar47 * iVar4 + iVar26" (identifier "iVar26") (= "=") (binary_expression "iVar47 * iVar4 + iVar26" (binary_expression "iVar47 * iVar4" (identifier "iVar47") (* "*") (identifier "iVar4")) (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "iVar47 = iVar47 + iVar26;" (assignment_expression "iVar47 = iVar47 + iVar26" (identifier "iVar47") (= "=") (binary_expression "iVar47 + iVar26" (identifier "iVar47") (+ "+") (identifier "iVar26"))) (; ";")) (if_statement "if (iVar26 < iVar47) {\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" (if "if") (parenthesized_expression "(iVar26 < iVar47)" (( "(") (binary_expression "iVar26 < iVar47" (identifier "iVar26") (< "<") (identifier "iVar47")) () ")")) (compound_statement "{\n    iVar3 = *(int *)((int)param_1 + 0x24);\n    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 3);\n    uVar7 = *(undefined4 *)((int)param_1 + 0x14);\n    dVar45 = *param_1;\n    iVar30 = *(int *)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);\n  }" ({ "{") (expression_statement "iVar3 = *(int *)((int)param_1 + 0x24);" (assignment_expression "iVar3 = *(int *)((int)param_1 + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)((int)param_1 + 0x24)" (* "*") (cast_expression "(int *)((int)param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x24)" (( "(") (binary_expression "(int)param_1 + 0x24" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)((int)param_1 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)param_1 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)((int)param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((int)param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x1c)" (( "(") (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 3);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 3)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 3)" (* "*") (cast_expression "(undefined4 *)(param_1 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)((int)param_1 + 0x14);" (assignment_expression "uVar7 = *(undefined4 *)((int)param_1 + 0x14)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)((int)param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x14)" (( "(") (binary_expression "(int)param_1 + 0x14" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar45 = *param_1;" (assignment_expression "dVar45 = *param_1" (identifier "dVar45") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar30 = *(int *)(param_1 + 2);" (assignment_expression "iVar30 = *(int *)(param_1 + 2)" (identifier "iVar30") (= "=") (pointer_expression "*(int *)(param_1 + 2)" (* "*") (cast_expression "(int *)(param_1 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)((int)param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0xc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)((int)param_1 + 0xc)" (* "*") (cast_expression "(int *)((int)param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0xc)" (( "(") (binary_expression "(int)param_1 + 0xc" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43c8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43c8")) () ")"))))) (; ";")) (expression_statement "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4410" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4410")) () ")"))))) (; ";")) (do_statement "do {\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    } while (iVar47 != iVar26);" (do "do") (compound_statement "{\n      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }\n      iVar26 = iVar26 + 1;\n    }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)()" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003fa520"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)(param_1 + 5) != 0) {\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 5) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 5) != 0" (pointer_expression "*(int *)(param_1 + 5)" (* "*") (cast_expression "(int *)(param_1 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);\n        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);\n        puVar2 = PTR_LAB_003f98e0;\n        if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003fa674" (* "*") (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003fa674" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewVirtualPixels_003fa674"))) () ")")) (argument_list "(uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,\n                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar26") (, ",") (unary_expression "-*(int *)(*(int *)(param_1 + 4) + 4)" (- "-") (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1" (binary_expression "*(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8)" (pointer_expression "*(int *)(iVar29 + 0x1c)" (* "*") (cast_expression "(int *)(iVar29 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x1c)" (( "(") (binary_expression "iVar29 + 0x1c" (identifier "iVar29") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar30 + 8)" (* "*") (cast_expression "(int *)(iVar30 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 8)" (( "(") (binary_expression "iVar30 + 8" (identifier "iVar30") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "-1")) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" (* "*") (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewAuthenticPixels_003fa664"))) () ")")) (argument_list "(uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7)" (( "(") (identifier "uVar5") (, ",") (identifier "iVar26") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "puVar2 = PTR_LAB_003f98e0;" (assignment_expression "puVar2 = PTR_LAB_003f98e0" (identifier "puVar2") (= "=") (identifier "PTR_LAB_003f98e0")) (; ";")) (if_statement "if ((iVar9 == 0) || (iVar10 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((iVar9 == 0) || (iVar10 == 0))" (( "(") (binary_expression "(iVar9 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          *(undefined4 *)(param_1 + 5) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" (* "*") (cast_expression "(undefined4 *)(param_1 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);\n          iVar11 = *(int *)(iVar29 + 0x2c0);\n          if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n          if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);" (assignment_expression "iVar28 = *(int *)(*(int *)(param_1 + 4) + 4)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar11 = *(int *)(iVar29 + 0x2c0)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar29 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar29 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x2c0)" (( "(") (binary_expression "iVar29 + 0x2c0" (identifier "iVar29") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (if_statement "if (0 < *(int *)(iVar29 + 0x1c)) {\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar29 + 0x1c))" (( "(") (binary_expression "0 < *(int *)(iVar29 + 0x1c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar29 + 0x1c)" (* "*") (cast_expression "(int *)(iVar29 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x1c)" (( "(") (binary_expression "iVar29 + 0x1c" (identifier "iVar29") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n            piVar27 = (int *)(iVar3 + iVar8 * 4);\n            iVar8 = 0;\n            dVar42 = *(double *)(puVar1 + 0x43c8);\n            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n            do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));\n          }" ({ "{") (expression_statement "piVar27 = (int *)(iVar3 + iVar8 * 4);" (assignment_expression "piVar27 = (int *)(iVar3 + iVar8 * 4)" (identifier "piVar27") (= "=") (cast_expression "(int *)(iVar3 + iVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar8 * 4)" (( "(") (binary_expression "iVar3 + iVar8 * 4" (identifier "iVar3") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar42 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar42 = *(double *)(puVar1 + 0x43c8)" (identifier "dVar42") (= "=") (pointer_expression "*(double *)(puVar1 + 0x43c8)" (* "*") (cast_expression "(double *)(puVar1 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x43c8)" (( "(") (binary_expression "puVar1 + 0x43c8" (identifier "puVar1") (+ "+") (number_literal "0x43c8")) () ")"))))) (; ";")) (expression_statement "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar43") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e8")) () ")"))))) (; ";")) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4408" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (expression_statement "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar41") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (expression_statement "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" (identifier "dVar32") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4418" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (do_statement "do {\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            } while (iVar8 < *(int *)(iVar29 + 0x1c));" (do "do") (compound_statement "{\n              iVar15 = *(int *)(iVar29 + 0x2c0);\n              iVar25 = iVar9 + iVar28 * iVar11 * 4;\n              if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }\n              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;\n              iVar8 = iVar8 + 1;\n              iVar9 = iVar9 + iVar15 * 4;\n            }" ({ "{") (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar29 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar29 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x2c0)" (( "(") (binary_expression "iVar29 + 0x2c0" (identifier "iVar29") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "iVar25 = iVar9 + iVar28 * iVar11 * 4;" (assignment_expression "iVar25 = iVar9 + iVar28 * iVar11 * 4" (identifier "iVar25") (= "=") (binary_expression "iVar9 + iVar28 * iVar11 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar28 * iVar11 * 4" (binary_expression "iVar28 * iVar11" (identifier "iVar28") (* "*") (identifier "iVar11")) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (0 < iVar15) {\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" (if "if") (parenthesized_expression "(0 < iVar15)" (( "(") (binary_expression "0 < iVar15" (number_literal "0") (< "<") (identifier "iVar15")) () ")")) (compound_statement "{\n                iVar22 = 0;\n                iVar18 = 0;\n                dVar37 = *(double *)(puVar1 + 0x43c8);\n                dVar40 = *(double *)(puVar2 + 0x43e8);\n                dVar38 = *(double *)(puVar2 + 0x4408);\n                do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);\n              }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar37 = *(double *)(puVar1 + 0x43c8);" (assignment_expression "dVar37 = *(double *)(puVar1 + 0x43c8)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(puVar1 + 0x43c8)" (* "*") (cast_expression "(double *)(puVar1 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x43c8)" (( "(") (binary_expression "puVar1 + 0x43c8" (identifier "puVar1") (+ "+") (number_literal "0x43c8")) () ")"))))) (; ";")) (expression_statement "dVar40 = *(double *)(puVar2 + 0x43e8);" (assignment_expression "dVar40 = *(double *)(puVar2 + 0x43e8)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(puVar2 + 0x43e8)" (* "*") (cast_expression "(double *)(puVar2 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x43e8)" (( "(") (binary_expression "puVar2 + 0x43e8" (identifier "puVar2") (+ "+") (number_literal "0x43e8")) () ")"))))) (; ";")) (expression_statement "dVar38 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x4408)" (identifier "dVar38") (= "=") (pointer_expression "*(double *)(puVar2 + 0x4408)" (* "*") (cast_expression "(double *)(puVar2 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x4408)" (( "(") (binary_expression "puVar2 + 0x4408" (identifier "puVar2") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (do_statement "do {\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                } while (iVar18 < iVar15);" (do "do") (compound_statement "{\n                  iVar19 = *(int *)(iVar29 + 0x2d0);\n                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;\n                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);\n                  if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar15 = *(int *)(iVar29 + 0x2c0);\n                  iVar22 = iVar22 + 0xc;\n                }" ({ "{") (expression_statement "iVar19 = *(int *)(iVar29 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar29 + 0x2d0)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar29 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar29 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x2d0)" (( "(") (binary_expression "iVar29 + 0x2d0" (identifier "iVar29") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar19 + iVar22) * 0xc;" (assignment_expression "iVar12 = *(int *)(iVar19 + iVar22) * 0xc" (identifier "iVar12") (= "=") (binary_expression "*(int *)(iVar19 + iVar22) * 0xc" (pointer_expression "*(int *)(iVar19 + iVar22)" (* "*") (cast_expression "(int *)(iVar19 + iVar22)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + iVar22)" (( "(") (binary_expression "iVar19 + iVar22" (identifier "iVar19") (+ "+") (identifier "iVar22")) () ")")))) (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "uVar13 = *(uint *)(iVar19 + iVar12 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar19 + iVar12 + 4)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar19 + iVar12 + 4)" (* "*") (cast_expression "(uint *)(iVar19 + iVar12 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + iVar12 + 4)" (( "(") (binary_expression "iVar19 + iVar12 + 4" (binary_expression "iVar19 + iVar12" (identifier "iVar19") (+ "+") (identifier "iVar12")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar13 != 0) {\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                    uVar20 = *(uint *)(iVar16 + 4);\n                    if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12" (identifier "iVar16") (= "=") (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar4 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2d0)" (( "(") (binary_expression "iVar4 + 0x2d0" (identifier "iVar4") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "uVar20 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar16 + 4)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(iVar16 + 4)" (* "*") (cast_expression "(uint *)(iVar16 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar20 != 0) {\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }\n                    }" ({ "{") (if_statement "if ((uVar13 & 1) == 0) {\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }\n                      else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" (if "if") (parenthesized_expression "((uVar13 & 1) == 0)" (( "(") (binary_expression "(uVar13 & 1) == 0" (parenthesized_expression "(uVar13 & 1)" (( "(") (binary_expression "uVar13 & 1" (identifier "uVar13") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        iVar16 = *(int *)(iVar30 + 8);\n                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);\n                        dVar35 = dVar45;\n                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }\n                        if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }\n                        if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }\n                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;\n                        if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }\n                      }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar30 + 8);" (assignment_expression "iVar16 = *(int *)(iVar30 + 8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar30 + 8)" (* "*") (cast_expression "(int *)(iVar30 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 8)" (( "(") (binary_expression "iVar30 + 8" (identifier "iVar30") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);" (assignment_expression "pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" (identifier "pdVar17") (= "=") (cast_expression "(double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8)" (( "(") (binary_expression "*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8" (pointer_expression "*(int *)(iVar30 + 0x14)" (* "*") (cast_expression "(int *)(iVar30 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 0x14)" (( "(") (binary_expression "iVar30 + 0x14" (identifier "iVar30") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (binary_expression "(iVar16 + 0x1fffffff) * 8" (parenthesized_expression "(iVar16 + 0x1fffffff)" (( "(") (binary_expression "iVar16 + 0x1fffffff" (identifier "iVar16") (+ "+") (number_literal "0x1fffffff")) () ")")) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "dVar35 = dVar45;" (assignment_expression "dVar35 = dVar45" (identifier "dVar35") (= "=") (identifier "dVar45")) (; ";")) (if_statement "if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }\n                        else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" (if "if") (parenthesized_expression "(((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0))" (( "(") (binary_expression "((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)" (parenthesized_expression "((*(uint *)(iVar29 + 700) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar29 + 700) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 700) & 4)" (( "(") (binary_expression "*(uint *)(iVar29 + 700) & 4" (pointer_expression "*(uint *)(iVar29 + 700)" (* "*") (cast_expression "(uint *)(iVar29 + 700)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 700)" (( "(") (binary_expression "iVar29 + 700" (identifier "iVar29") (+ "+") (number_literal "700")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar20 & 4) == 0)" (( "(") (binary_expression "(uVar20 & 4) == 0" (parenthesized_expression "(uVar20 & 4)" (( "(") (binary_expression "uVar20 & 4" (identifier "uVar20") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\nLAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }\n                          dVar39 = dVar33 * dVar31;\n                          dVar36 = dVar31;\n                        }" ({ "{") (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }\n                          else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" (if "if") (parenthesized_expression "(iVar16 < 1)" (( "(") (binary_expression "iVar16 < 1" (identifier "iVar16") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" (identifier "dVar33") (= "=") (pointer_expression "*(double *)(puVar2 + 0x4408)" (* "*") (cast_expression "(double *)(puVar2 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x4408)" (( "(") (binary_expression "puVar2 + 0x4408" (identifier "puVar2") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" (else "else") (compound_statement "{\n                            pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                            iVar19 = 0;\n                            iVar14 = 0;\n                            do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);\n                            dVar33 = *(double *)(puVar2 + 0x4408);\n                          }" ({ "{") (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" (identifier "pfVar21") (= "=") (cast_expression "(float *)(iVar9 + iVar18 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar18 * 4)" (( "(") (binary_expression "iVar9 + iVar18 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            } while (iVar19 != iVar16);" (do "do") (compound_statement "{\n                              if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }\n                              pdVar17 = pdVar17 + -1;\n                              iVar19 = iVar19 + 1;\n                              pfVar21 = pfVar21 + iVar15;\n                            }" ({ "{") (if_statement "if (!NAN(*pdVar17)) {\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" (if "if") (parenthesized_expression "(!NAN(*pdVar17))" (( "(") (unary_expression "!NAN(*pdVar17)" (! "!") (call_expression "NAN(*pdVar17)" (identifier "NAN") (argument_list "(*pdVar17)" (( "(") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) () ")")))) () ")")) (compound_statement "{\n                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;\n                                iVar14 = iVar14 + 1;\n                              }" ({ "{") (expression_statement "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * *pdVar17 + dVar35" (identifier "dVar35") (= "=") (binary_expression "(double)*pfVar21 * *pdVar17 + dVar35" (binary_expression "(double)*pfVar21 * *pdVar17" (cast_expression "(double)*pfVar21" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21"))) (* "*") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17"))) (+ "+") (identifier "dVar35"))) (; ";")) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" (identifier "pdVar17") (= "=") (binary_expression "pdVar17 + -1" (identifier "pdVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" (identifier "pfVar21") (= "=") (binary_expression "pfVar21 + iVar15" (identifier "pfVar21") (+ "+") (identifier "iVar15"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != iVar16)" (( "(") (binary_expression "iVar19 != iVar16" (identifier "iVar19") (!= "!=") (identifier "iVar16")) () ")")) (; ";")) (expression_statement "dVar33 = *(double *)(puVar2 + 0x4408);" (assignment_expression "dVar33 = *(double *)(puVar2 + 0x4408)" (identifier "dVar33") (= "=") (pointer_expression "*(double *)(puVar2 + 0x4408)" (* "*") (cast_expression "(double *)(puVar2 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x4408)" (( "(") (binary_expression "puVar2 + 0x4408" (identifier "puVar2") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_0012d5bc:\n                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" (statement_identifier "LAB_0012d5bc") (: ":") (if_statement "if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" (if "if") (parenthesized_expression "(dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" (( "(") (binary_expression "dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" (identifier "dVar44") (< "<") (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" (identifier "ABS") (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" (( "(") (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" (identifier "dVar35") (- "-") (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" (* "*") (cast_expression "(float *)(iVar25 + iVar18 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar18 * 4)" (( "(") (binary_expression "iVar25 + iVar18 * 4" (identifier "iVar25") (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")")))))) () ")")))) () ")")) (compound_statement "{\nLAB_0012d644:\n                            *piVar27 = *piVar27 + 1;\n                            goto LAB_0012d650;\n                          }" ({ "{") (labeled_statement "LAB_0012d644:\n                            *piVar27 = *piVar27 + 1;" (statement_identifier "LAB_0012d644") (: ":") (expression_statement "*piVar27 = *piVar27 + 1;" (assignment_expression "*piVar27 = *piVar27 + 1" (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) (= "=") (binary_expression "*piVar27 + 1" (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) (+ "+") (number_literal "1"))) (; ";"))) (goto_statement "goto LAB_0012d650;" (goto "goto") (statement_identifier "LAB_0012d650") (; ";")) (} "}")))) (expression_statement "dVar39 = dVar33 * dVar31;" (assignment_expression "dVar39 = dVar33 * dVar31" (identifier "dVar39") (= "=") (binary_expression "dVar33 * dVar31" (identifier "dVar33") (* "*") (identifier "dVar31"))) (; ";")) (expression_statement "dVar36 = dVar31;" (assignment_expression "dVar36 = dVar31" (identifier "dVar36") (= "=") (identifier "dVar31")) (; ";")) (} "}")) (else_clause "else {\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" (else "else") (compound_statement "{\n                          if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }\n                          pfVar21 = (float *)(iVar9 + iVar18 * 4);\n                          iVar23 = 0;\n                          iVar14 = 0;\n                          dVar33 = 0.0;\n                          iVar24 = iVar9;\n                          do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);\n                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;\nLAB_0012d650:\n                          dVar36 = dVar32;\n                          if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }\n                          dVar39 = dVar33 * dVar36;\n                        }" ({ "{") (if_statement "if (iVar16 < 1) {\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" (if "if") (parenthesized_expression "(iVar16 < 1)" (( "(") (binary_expression "iVar16 < 1" (identifier "iVar16") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                            iVar14 = 0;\n                            dVar33 = 0.0;\n                            goto LAB_0012d5bc;\n                          }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" (identifier "dVar33") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_0012d5bc;" (goto "goto") (statement_identifier "LAB_0012d5bc") (; ";")) (} "}"))) (expression_statement "pfVar21 = (float *)(iVar9 + iVar18 * 4);" (assignment_expression "pfVar21 = (float *)(iVar9 + iVar18 * 4)" (identifier "pfVar21") (= "=") (cast_expression "(float *)(iVar9 + iVar18 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar18 * 4)" (( "(") (binary_expression "iVar9 + iVar18 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" (identifier "dVar33") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "iVar24 = iVar9;" (assignment_expression "iVar24 = iVar9" (identifier "iVar24") (= "=") (identifier "iVar9")) (; ";")) (do_statement "do {\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          } while (iVar23 != iVar16);" (do "do") (compound_statement "{\n                            if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }\n                            pdVar17 = pdVar17 + -1;\n                            iVar24 = iVar24 + iVar15 * 4;\n                            iVar23 = iVar23 + 1;\n                            pfVar21 = pfVar21 + iVar15;\n                          }" ({ "{") (if_statement "if (!NAN(*pdVar17)) {\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" (if "if") (parenthesized_expression "(!NAN(*pdVar17))" (( "(") (unary_expression "!NAN(*pdVar17)" (! "!") (call_expression "NAN(*pdVar17)" (identifier "NAN") (argument_list "(*pdVar17)" (( "(") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) () ")")))) () ")")) (compound_statement "{\n                              fVar34 = fVar41;\n                              if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }\n                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;\n                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;\n                              dVar33 = dVar33 + dVar36;\n                              iVar14 = iVar14 + 1;\n                            }" ({ "{") (expression_statement "fVar34 = fVar41;" (assignment_expression "fVar34 = fVar41" (identifier "fVar34") (= "=") (identifier "fVar41")) (; ";")) (if_statement "if (*(int *)(iVar19 + 0x34) != 0) {\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" (if "if") (parenthesized_expression "(*(int *)(iVar19 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar19 + 0x34) != 0" (pointer_expression "*(int *)(iVar19 + 0x34)" (* "*") (cast_expression "(int *)(iVar19 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x34)" (( "(") (binary_expression "iVar19 + 0x34" (identifier "iVar19") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);\n                              }" ({ "{") (expression_statement "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);" (assignment_expression "fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" (identifier "fVar34") (= "=") (pointer_expression "*(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + *(int *)(iVar19 + 0x38) * 4)" (( "(") (binary_expression "iVar24 + *(int *)(iVar19 + 0x38) * 4" (identifier "iVar24") (+ "+") (binary_expression "*(int *)(iVar19 + 0x38) * 4" (pointer_expression "*(int *)(iVar19 + 0x38)" (* "*") (cast_expression "(int *)(iVar19 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x38)" (( "(") (binary_expression "iVar19 + 0x38" (identifier "iVar19") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "dVar36 = (double)fVar34 * dVar46 * *pdVar17;" (assignment_expression "dVar36 = (double)fVar34 * dVar46 * *pdVar17" (identifier "dVar36") (= "=") (binary_expression "(double)fVar34 * dVar46 * *pdVar17" (binary_expression "(double)fVar34 * dVar46" (cast_expression "(double)fVar34" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar34")) (* "*") (identifier "dVar46")) (* "*") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")))) (; ";")) (expression_statement "dVar35 = (double)*pfVar21 * dVar36 + dVar35;" (assignment_expression "dVar35 = (double)*pfVar21 * dVar36 + dVar35" (identifier "dVar35") (= "=") (binary_expression "(double)*pfVar21 * dVar36 + dVar35" (binary_expression "(double)*pfVar21 * dVar36" (cast_expression "(double)*pfVar21" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21"))) (* "*") (identifier "dVar36")) (+ "+") (identifier "dVar35"))) (; ";")) (expression_statement "dVar33 = dVar33 + dVar36;" (assignment_expression "dVar33 = dVar33 + dVar36" (identifier "dVar33") (= "=") (binary_expression "dVar33 + dVar36" (identifier "dVar33") (+ "+") (identifier "dVar36"))) (; ";")) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pdVar17 = pdVar17 + -1;" (assignment_expression "pdVar17 = pdVar17 + -1" (identifier "pdVar17") (= "=") (binary_expression "pdVar17 + -1" (identifier "pdVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar24 = iVar24 + iVar15 * 4;" (assignment_expression "iVar24 = iVar24 + iVar15 * 4" (identifier "iVar24") (= "=") (binary_expression "iVar24 + iVar15 * 4" (identifier "iVar24") (+ "+") (binary_expression "iVar15 * 4" (identifier "iVar15") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar21 = pfVar21 + iVar15;" (assignment_expression "pfVar21 = pfVar21 + iVar15" (identifier "pfVar21") (= "=") (binary_expression "pfVar21 + iVar15" (identifier "pfVar21") (+ "+") (identifier "iVar15"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar23 != iVar16)" (( "(") (binary_expression "iVar23 != iVar16" (identifier "iVar23") (!= "!=") (identifier "iVar16")) () ")")) (; ";")) (if_statement "if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))\n                          goto LAB_0012d644;" (if "if") (parenthesized_expression "(dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))" (( "(") (binary_expression "dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" (identifier "dVar42") (< "<") (call_expression "ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" (identifier "ABS") (argument_list "(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))" (( "(") (binary_expression "dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)" (identifier "dVar35") (- "-") (cast_expression "(double)*(float *)(iVar25 + iVar18 * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar25 + iVar18 * 4)" (* "*") (cast_expression "(float *)(iVar25 + iVar18 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar18 * 4)" (( "(") (binary_expression "iVar25 + iVar18 * 4" (identifier "iVar25") (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")")))))) () ")")))) () ")")) (goto_statement "goto LAB_0012d644;" (goto "goto") (statement_identifier "LAB_0012d644") (; ";"))) (labeled_statement "LAB_0012d650:\n                          dVar36 = dVar32;" (statement_identifier "LAB_0012d650") (: ":") (expression_statement "dVar36 = dVar32;" (assignment_expression "dVar36 = dVar32" (identifier "dVar36") (= "=") (identifier "dVar32")) (; ";"))) (if_statement "if (0.0 <= dVar33) {\n                            dVar36 = dVar38;\n                          }" (if "if") (parenthesized_expression "(0.0 <= dVar33)" (( "(") (binary_expression "0.0 <= dVar33" (number_literal "0.0") (<= "<=") (identifier "dVar33")) () ")")) (compound_statement "{\n                            dVar36 = dVar38;\n                          }" ({ "{") (expression_statement "dVar36 = dVar38;" (assignment_expression "dVar36 = dVar38" (identifier "dVar36") (= "=") (identifier "dVar38")) (; ";")) (} "}"))) (expression_statement "dVar39 = dVar33 * dVar36;" (assignment_expression "dVar39 = dVar33 * dVar36" (identifier "dVar39") (= "=") (binary_expression "dVar33 * dVar36" (identifier "dVar33") (* "*") (identifier "dVar36"))) (; ";")) (} "}")))) (if_statement "if (dVar37 <= dVar39) {\n                          dVar36 = dVar38 / dVar33;\n                        }\n                        else {\n                          dVar36 = dVar36 / dVar37;\n                        }" (if "if") (parenthesized_expression "(dVar37 <= dVar39)" (( "(") (binary_expression "dVar37 <= dVar39" (identifier "dVar37") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                          dVar36 = dVar38 / dVar33;\n                        }" ({ "{") (expression_statement "dVar36 = dVar38 / dVar33;" (assignment_expression "dVar36 = dVar38 / dVar33" (identifier "dVar36") (= "=") (binary_expression "dVar38 / dVar33" (identifier "dVar38") (/ "/") (identifier "dVar33"))) (; ";")) (} "}")) (else_clause "else {\n                          dVar36 = dVar36 / dVar37;\n                        }" (else "else") (compound_statement "{\n                          dVar36 = dVar36 / dVar37;\n                        }" ({ "{") (expression_statement "dVar36 = dVar36 / dVar37;" (assignment_expression "dVar36 = dVar36 / dVar37" (identifier "dVar36") (= "=") (binary_expression "dVar36 / dVar37" (identifier "dVar36") (/ "/") (identifier "dVar37"))) (; ";")) (} "}")))) (if_statement "if (iVar14 != 0) {\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          dVar33 = (double)*(int *)(iVar30 + 8);\n                          if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }\n                          dVar39 = (double)iVar14;\n                          if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }\n                          dVar36 = dVar36 * (dVar33 / dVar39);\n                        }" ({ "{") (expression_statement "dVar33 = (double)*(int *)(iVar30 + 8);" (assignment_expression "dVar33 = (double)*(int *)(iVar30 + 8)" (identifier "dVar33") (= "=") (cast_expression "(double)*(int *)(iVar30 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar30 + 8)" (* "*") (cast_expression "(int *)(iVar30 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 8)" (( "(") (binary_expression "iVar30 + 8" (identifier "iVar30") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar30 + 8) < 0) {\n                            dVar33 = dVar33 + dVar40;\n                          }" (if "if") (parenthesized_expression "(*(int *)(iVar30 + 8) < 0)" (( "(") (binary_expression "*(int *)(iVar30 + 8) < 0" (pointer_expression "*(int *)(iVar30 + 8)" (* "*") (cast_expression "(int *)(iVar30 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 8)" (( "(") (binary_expression "iVar30 + 8" (identifier "iVar30") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                            dVar33 = dVar33 + dVar40;\n                          }" ({ "{") (expression_statement "dVar33 = dVar33 + dVar40;" (assignment_expression "dVar33 = dVar33 + dVar40" (identifier "dVar33") (= "=") (binary_expression "dVar33 + dVar40" (identifier "dVar33") (+ "+") (identifier "dVar40"))) (; ";")) (} "}"))) (expression_statement "dVar39 = (double)iVar14;" (assignment_expression "dVar39 = (double)iVar14" (identifier "dVar39") (= "=") (cast_expression "(double)iVar14" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar14"))) (; ";")) (if_statement "if (iVar14 < 0) {\n                            dVar39 = dVar39 + dVar43;\n                          }" (if "if") (parenthesized_expression "(iVar14 < 0)" (( "(") (binary_expression "iVar14 < 0" (identifier "iVar14") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                            dVar39 = dVar39 + dVar43;\n                          }" ({ "{") (expression_statement "dVar39 = dVar39 + dVar43;" (assignment_expression "dVar39 = dVar39 + dVar43" (identifier "dVar39") (= "=") (binary_expression "dVar39 + dVar43" (identifier "dVar39") (+ "+") (identifier "dVar43"))) (; ";")) (} "}"))) (expression_statement "dVar36 = dVar36 * (dVar33 / dVar39);" (assignment_expression "dVar36 = dVar36 * (dVar33 / dVar39)" (identifier "dVar36") (= "=") (binary_expression "dVar36 * (dVar33 / dVar39)" (identifier "dVar36") (* "*") (parenthesized_expression "(dVar33 / dVar39)" (( "(") (binary_expression "dVar33 / dVar39" (identifier "dVar33") (/ "/") (identifier "dVar39")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;" (assignment_expression "iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12" (identifier "iVar12") (= "=") (binary_expression "*(int *)(iVar4 + 0x2d0) + iVar12" (pointer_expression "*(int *)(iVar4 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar4 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2d0)" (( "(") (binary_expression "iVar4 + 0x2d0" (identifier "iVar4") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar12"))) (; ";")) (if_statement "if (*(int *)(iVar12 + 4) != 0) {\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 4) != 0" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);\n                        }" ({ "{") (expression_statement "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);" (assignment_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35)" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar10 + *(int *)(iVar12 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar12 + 8) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(iVar12 + 8) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)(dVar36 * dVar35)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar36 * dVar35)" (( "(") (binary_expression "dVar36 * dVar35" (identifier "dVar36") (* "*") (identifier "dVar35")) () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" (else "else") (compound_statement "{\n                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);\n                      }" ({ "{") (expression_statement "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4);" (assignment_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =\n                             *(undefined4 *)(iVar25 + iVar18 * 4)" (pointer_expression "*(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" (* "*") (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar16 + 8) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(iVar16 + 8) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar25 + iVar18 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar25 + iVar18 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar18 * 4)" (( "(") (binary_expression "iVar25 + iVar18 * 4" (identifier "iVar25") (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar29 + 0x2c0);" (assignment_expression "iVar15 = *(int *)(iVar29 + 0x2c0)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar29 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar29 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x2c0)" (( "(") (binary_expression "iVar29 + 0x2c0" (identifier "iVar29") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "iVar22 = iVar22 + 0xc;" (assignment_expression "iVar22 = iVar22 + 0xc" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < iVar15)" (( "(") (binary_expression "iVar18 < iVar15" (identifier "iVar18") (< "<") (identifier "iVar15")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4" (identifier "iVar10") (= "=") (binary_expression "iVar10 + *(int *)(iVar4 + 0x2c0) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar4 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar4 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2c0)" (( "(") (binary_expression "iVar4 + 0x2c0" (identifier "iVar4") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = iVar9 + iVar15 * 4;" (assignment_expression "iVar9 = iVar9 + iVar15 * 4" (identifier "iVar9") (= "=") (binary_expression "iVar9 + iVar15 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar15 * 4" (identifier "iVar15") (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 < *(int *)(iVar29 + 0x1c))" (( "(") (binary_expression "iVar8 < *(int *)(iVar29 + 0x1c)" (identifier "iVar8") (< "<") (pointer_expression "*(int *)(iVar29 + 0x1c)" (* "*") (cast_expression "(int *)(iVar29 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x1c)" (( "(") (binary_expression "iVar29 + 0x1c" (identifier "iVar29") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" (( "(") (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" (* "*") (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SyncCacheViewAuthenticPixels_003fa510"))) () ")")) (argument_list "(uVar5,uVar7)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" (* "*") (cast_expression "(undefined4 *)(param_1 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar29 + 0x328) != 0) {\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar29 + 0x328) != 0)" (( "(") (binary_expression "*(int *)(iVar29 + 0x328) != 0" (pointer_expression "*(int *)(iVar29 + 0x328)" (* "*") (cast_expression "(int *)(iVar29 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x328)" (( "(") (binary_expression "iVar29 + 0x328" (identifier "iVar29") (+ "+") (number_literal "0x328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar27 = *(int **)((int)param_1 + 0x2c);\n            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();\n            uVar13 = piVar27[1] + 1;\n            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;\n            piVar27[1] = uVar13;\n            (*(code *)PTR_GOMP_atomic_end_003fa450)();\n            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));\n            if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }\n          }" ({ "{") (expression_statement "piVar27 = *(int **)((int)param_1 + 0x2c);" (assignment_expression "piVar27 = *(int **)((int)param_1 + 0x2c)" (identifier "piVar27") (= "=") (pointer_expression "*(int **)((int)param_1 + 0x2c)" (* "*") (cast_expression "(int **)((int)param_1 + 0x2c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 0x2c)" (( "(") (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003fa2fc)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003fa2fc)" (( "(") (pointer_expression "*(code *)PTR_GOMP_atomic_start_003fa2fc" (* "*") (cast_expression "(code *)PTR_GOMP_atomic_start_003fa2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GOMP_atomic_start_003fa2fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar13 = piVar27[1] + 1;" (assignment_expression "uVar13 = piVar27[1] + 1" (identifier "uVar13") (= "=") (binary_expression "piVar27[1] + 1" (subscript_expression "piVar27[1]" (identifier "piVar27") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;" (assignment_expression "*piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) (= "=") (binary_expression "(uint)(uVar13 < (uint)piVar27[1]) + *piVar27" (call_expression "(uint)(uVar13 < (uint)piVar27[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar13 < (uint)piVar27[1])" (( "(") (binary_expression "uVar13 < (uint)piVar27[1]" (identifier "uVar13") (< "<") (cast_expression "(uint)piVar27[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar27[1]" (identifier "piVar27") ([ "[") (number_literal "1") (] "]")))) () ")"))) (+ "+") (pointer_expression "*piVar27" (* "*") (identifier "piVar27")))) (; ";")) (expression_statement "piVar27[1] = uVar13;" (assignment_expression "piVar27[1] = uVar13" (subscript_expression "piVar27[1]" (identifier "piVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "(*(code *)PTR_GOMP_atomic_end_003fa450)();" (call_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_end_003fa450)" (( "(") (pointer_expression "*(code *)PTR_GOMP_atomic_end_003fa450" (* "*") (cast_expression "(code *)PTR_GOMP_atomic_end_003fa450" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GOMP_atomic_end_003fa450"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c));" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" (( "(") (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" (* "*") (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageProgress_003f9ccc"))) () ")")) (argument_list "(iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,\n                               **(undefined4 **)((int)param_1 + 0x2c),\n                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,\n                               *(undefined4 *)(iVar29 + 0x1c))" (( "(") (identifier "iVar29") (, ",") (binary_expression "PTR_s_ltiple_images_003f98e8 + 0xbac" (identifier "PTR_s_ltiple_images_003f98e8") (+ "+") (number_literal "0xbac")) (, ",") (pointer_expression "**(undefined4 **)((int)param_1 + 0x2c)" (* "*") (pointer_expression "*(undefined4 **)((int)param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 **)((int)param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 0x2c)" (( "(") (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2c")) () ")"))))) (, ",") (subscript_expression "(*(undefined4 **)((int)param_1 + 0x2c))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 0x2c))" (( "(") (pointer_expression "*(undefined4 **)((int)param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 **)((int)param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 0x2c)" (( "(") (binary_expression "(int)param_1 + 0x2c" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2c")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(iVar29 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar29 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 0x1c)" (( "(") (binary_expression "iVar29 + 0x1c" (identifier "iVar29") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n              *(undefined4 *)(param_1 + 5) = 0;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 *)(param_1 + 5) = 0;\n            }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 5) = 0" (pointer_expression "*(undefined4 *)(param_1 + 5)" (* "*") (cast_expression "(undefined4 *)(param_1 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar26 + 1" (identifier "iVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar47 != iVar26)" (( "(") (binary_expression "iVar47 != iVar26" (identifier "iVar47") (!= "!=") (identifier "iVar26")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (number_literal) (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: (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)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) 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)))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)) right: (identifier)))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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 (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) index: (number_literal)) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))))) (return_statement))))

void MASKED(double *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  double *pdVar17;
  int iVar18;
  int iVar19;
  uint uVar20;
  float *pfVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int *piVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  float fVar34;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  float fVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  double dVar46;
  int iVar47;
  
  iVar29 = *(int *)(param_1 + 1);
  iVar26 = *(int *)(iVar29 + 0x18);
  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar1 = PTR_LAB_003f98e0;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar47 = iVar26 / iVar3;
  iVar26 = iVar26 % iVar3;
  if (iVar4 < iVar26) {
    iVar47 = iVar47 + 1;
    iVar26 = 0;
  }
  iVar26 = iVar47 * iVar4 + iVar26;
  iVar47 = iVar47 + iVar26;
  if (iVar26 < iVar47) {
    iVar3 = *(int *)((int)param_1 + 0x24);
    uVar5 = *(undefined4 *)((int)param_1 + 0x1c);
    uVar6 = *(undefined4 *)(param_1 + 3);
    uVar7 = *(undefined4 *)((int)param_1 + 0x14);
    dVar45 = *param_1;
    iVar30 = *(int *)(param_1 + 2);
    iVar4 = *(int *)((int)param_1 + 0xc);
    dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);
    dVar46 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
    do {
      iVar8 = (*(code *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)(param_1 + 5) != 0) {
        iVar9 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)
                          (uVar6,iVar26,-*(int *)(*(int *)(param_1 + 4) + 4),1,
                           *(int *)(iVar29 + 0x1c) + *(int *)(iVar30 + 8) + -1,uVar7);
        iVar10 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar5,iVar26,0,1,*(undefined4 *)(iVar4 + 0x1c),uVar7);
        puVar2 = PTR_LAB_003f98e0;
        if ((iVar9 == 0) || (iVar10 == 0)) {
          *(undefined4 *)(param_1 + 5) = 0;
        }
        else {
          iVar28 = *(int *)(*(int *)(param_1 + 4) + 4);
          iVar11 = *(int *)(iVar29 + 0x2c0);
          if (0 < *(int *)(iVar29 + 0x1c)) {
            piVar27 = (int *)(iVar3 + iVar8 * 4);
            iVar8 = 0;
            dVar42 = *(double *)(puVar1 + 0x43c8);
            dVar43 = *(double *)(PTR_LAB_003f98e0 + 0x43e8);
            dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
            fVar41 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
            dVar32 = *(double *)(PTR_LAB_003f98e0 + 0x4418);
            do {
              iVar15 = *(int *)(iVar29 + 0x2c0);
              iVar25 = iVar9 + iVar28 * iVar11 * 4;
              if (0 < iVar15) {
                iVar22 = 0;
                iVar18 = 0;
                dVar37 = *(double *)(puVar1 + 0x43c8);
                dVar40 = *(double *)(puVar2 + 0x43e8);
                dVar38 = *(double *)(puVar2 + 0x4408);
                do {
                  iVar19 = *(int *)(iVar29 + 0x2d0);
                  iVar12 = *(int *)(iVar19 + iVar22) * 0xc;
                  uVar13 = *(uint *)(iVar19 + iVar12 + 4);
                  if (uVar13 != 0) {
                    iVar16 = *(int *)(iVar4 + 0x2d0) + iVar12;
                    uVar20 = *(uint *)(iVar16 + 4);
                    if (uVar20 != 0) {
                      if ((uVar13 & 1) == 0) {
                        iVar16 = *(int *)(iVar30 + 8);
                        pdVar17 = (double *)(*(int *)(iVar30 + 0x14) + (iVar16 + 0x1fffffff) * 8);
                        dVar35 = dVar45;
                        if (((*(uint *)(iVar29 + 700) & 4) == 0) || ((uVar20 & 4) == 0)) {
                          if (iVar16 < 1) {
                            iVar14 = 0;
                            dVar33 = *(double *)(puVar2 + 0x4408);
                          }
                          else {
                            pfVar21 = (float *)(iVar9 + iVar18 * 4);
                            iVar19 = 0;
                            iVar14 = 0;
                            do {
                              if (!NAN(*pdVar17)) {
                                dVar35 = (double)*pfVar21 * *pdVar17 + dVar35;
                                iVar14 = iVar14 + 1;
                              }
                              pdVar17 = pdVar17 + -1;
                              iVar19 = iVar19 + 1;
                              pfVar21 = pfVar21 + iVar15;
                            } while (iVar19 != iVar16);
                            dVar33 = *(double *)(puVar2 + 0x4408);
                          }
LAB_0012d5bc:
                          if (dVar44 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4))) {
LAB_0012d644:
                            *piVar27 = *piVar27 + 1;
                            goto LAB_0012d650;
                          }
                          dVar39 = dVar33 * dVar31;
                          dVar36 = dVar31;
                        }
                        else {
                          if (iVar16 < 1) {
                            iVar14 = 0;
                            dVar33 = 0.0;
                            goto LAB_0012d5bc;
                          }
                          pfVar21 = (float *)(iVar9 + iVar18 * 4);
                          iVar23 = 0;
                          iVar14 = 0;
                          dVar33 = 0.0;
                          iVar24 = iVar9;
                          do {
                            if (!NAN(*pdVar17)) {
                              fVar34 = fVar41;
                              if (*(int *)(iVar19 + 0x34) != 0) {
                                fVar34 = *(float *)(iVar24 + *(int *)(iVar19 + 0x38) * 4);
                              }
                              dVar36 = (double)fVar34 * dVar46 * *pdVar17;
                              dVar35 = (double)*pfVar21 * dVar36 + dVar35;
                              dVar33 = dVar33 + dVar36;
                              iVar14 = iVar14 + 1;
                            }
                            pdVar17 = pdVar17 + -1;
                            iVar24 = iVar24 + iVar15 * 4;
                            iVar23 = iVar23 + 1;
                            pfVar21 = pfVar21 + iVar15;
                          } while (iVar23 != iVar16);
                          if (dVar42 < ABS(dVar35 - (double)*(float *)(iVar25 + iVar18 * 4)))
                          goto LAB_0012d644;
LAB_0012d650:
                          dVar36 = dVar32;
                          if (0.0 <= dVar33) {
                            dVar36 = dVar38;
                          }
                          dVar39 = dVar33 * dVar36;
                        }
                        if (dVar37 <= dVar39) {
                          dVar36 = dVar38 / dVar33;
                        }
                        else {
                          dVar36 = dVar36 / dVar37;
                        }
                        if (iVar14 != 0) {
                          dVar33 = (double)*(int *)(iVar30 + 8);
                          if (*(int *)(iVar30 + 8) < 0) {
                            dVar33 = dVar33 + dVar40;
                          }
                          dVar39 = (double)iVar14;
                          if (iVar14 < 0) {
                            dVar39 = dVar39 + dVar43;
                          }
                          dVar36 = dVar36 * (dVar33 / dVar39);
                        }
                        iVar12 = *(int *)(iVar4 + 0x2d0) + iVar12;
                        if (*(int *)(iVar12 + 4) != 0) {
                          *(float *)(iVar10 + *(int *)(iVar12 + 8) * 4) = (float)(dVar36 * dVar35);
                        }
                      }
                      else {
                        *(undefined4 *)(iVar10 + *(int *)(iVar16 + 8) * 4) =
                             *(undefined4 *)(iVar25 + iVar18 * 4);
                      }
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar15 = *(int *)(iVar29 + 0x2c0);
                  iVar22 = iVar22 + 0xc;
                } while (iVar18 < iVar15);
              }
              iVar10 = iVar10 + *(int *)(iVar4 + 0x2c0) * 4;
              iVar8 = iVar8 + 1;
              iVar9 = iVar9 + iVar15 * 4;
            } while (iVar8 < *(int *)(iVar29 + 0x1c));
          }
          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar5,uVar7);
          if (iVar8 == 0) {
            *(undefined4 *)(param_1 + 5) = 0;
          }
          if (*(int *)(iVar29 + 0x328) != 0) {
            piVar27 = *(int **)((int)param_1 + 0x2c);
            (*(code *)PTR_GOMP_atomic_start_003fa2fc)();
            uVar13 = piVar27[1] + 1;
            *piVar27 = (uint)(uVar13 < (uint)piVar27[1]) + *piVar27;
            piVar27[1] = uVar13;
            (*(code *)PTR_GOMP_atomic_end_003fa450)();
            iVar8 = (*(code *)PTR_SetImageProgress_003f9ccc)
                              (iVar29,PTR_s_ltiple_images_003f98e8 + 0xbac,
                               **(undefined4 **)((int)param_1 + 0x2c),
                               (*(undefined4 **)((int)param_1 + 0x2c))[1],0,
                               *(undefined4 *)(iVar29 + 0x1c));
            if (iVar8 == 0) {
              *(undefined4 *)(param_1 + 5) = 0;
            }
          }
        }
      }
      iVar26 = iVar26 + 1;
    } while (iVar47 != iVar26);
  }
  return;
}

