
/* DWARF original prototype: void LocalContrastImage._omp_fn.6(anon_struct_56_12_26f1cbcd * param_0)
    */

void __thiscall LocalContrastImage__omp_fn_6(void *this)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  float *pfVar12;
  int iVar13;
  float *pfVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  float fVar20;
  float fVar21;
  float fVar22;
  float fVar23;
  float fVar24;
  float fVar25;
  ulonglong uVar26;
  double dVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  double dVar30;
  int iVar31;
  
  iVar18 = *(int *)((int)this + 8);
  iVar16 = *(int *)(iVar18 + 0x1c);
  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar2 = PTR_s_ltiple_images_003f98e8;
  puVar1 = PTR_UINT_003f98e4;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar31 = iVar16 / iVar3;
  iVar16 = iVar16 % iVar3;
  if (iVar4 < iVar16) {
    iVar31 = iVar31 + 1;
    iVar16 = 0;
  }
  iVar16 = iVar31 * iVar4 + iVar16;
  iVar31 = iVar31 + iVar16;
  if (iVar16 < iVar31) {
    iVar15 = *(int *)((int)this + 0x30);
    iVar3 = *(int *)((int)this + 0x2c);
    iVar19 = *(int *)((int)this + 0x24);
    uVar29 = (ulonglong)*(uint *)((int)this + 0x20);
    iVar4 = *(int *)((int)this + 0x1c);
    iVar5 = *(int *)((int)this + 0x18);
    uVar6 = *(undefined4 *)((int)this + 0x14);
    uVar7 = *(undefined4 *)((int)this + 0x10);
    uVar8 = *(undefined4 *)((int)this + 0xc);
                    /* WARNING: Load size is inaccurate */
    dVar30 = *this;
    iVar17 = iVar15 * 2;
    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);
    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);
    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);
    do {
      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)((int)this + 0x28) != 0) {
        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)
                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);
        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);
        if ((iVar10 == 0) || (iVar11 == 0)) {
          *(undefined4 *)((int)this + 0x28) = 0;
        }
        else {
          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);
          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;
          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);
          if (0 < *(int *)(iVar18 + 0x18)) {
            iVar9 = 0;
            fVar22 = *(float *)(puVar1 + -0x2a24);
            fVar24 = *(float *)(puVar2 + -0x7ee0);
            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);
            do {
              if (iVar15 < 1) {
                fVar21 = 0.0;
                fVar20 = *(float *)(puVar1 + -0x2a24);
                pfVar12 = pfVar14;
              }
              else {
                iVar13 = 0;
                fVar21 = 0.0;
                fVar20 = *(float *)(puVar1 + -0x2a24);
                pfVar12 = pfVar14;
                do {
                  fVar21 = fVar20 * *pfVar12 + fVar21;
                  iVar13 = iVar13 + 1;
                  fVar20 = fVar20 + (float)uVar26;
                  pfVar12 = pfVar12 + 1;
                } while (iVar15 != iVar13);
                pfVar12 = pfVar14 + iVar15;
              }
              iVar13 = iVar15 + 1;
              if (iVar13 < iVar17) {
                do {
                  fVar21 = fVar20 * *pfVar12 + fVar21;
                  iVar13 = iVar13 + 1;
                  fVar20 = fVar20 - fVar22;
                  pfVar12 = pfVar12 + 1;
                } while (iVar17 != iVar13);
              }
              iVar13 = *(int *)(iVar18 + 0x2d0);
              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);
              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +
                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +
                       fVar25 * fVar24;
              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +
                       fVar20) / fVar20;
              if ((*(uint *)(iVar13 + 4) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;
              }
              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =
                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;
              }
              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =
                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;
              }
              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;
              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;
              iVar9 = iVar9 + 1;
              pfVar14 = pfVar14 + 1;
            } while (iVar9 < *(int *)(iVar18 + 0x18));
          }
          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);
          if (iVar9 == 0) {
            *(undefined4 *)((int)this + 0x28) = 0;
          }
        }
      }
      iVar16 = iVar16 + 1;
    } while (iVar31 != iVar16);
  }
  return;
}



void FUN_000bed90(double *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  float *pfVar12;
  int iVar13;
  float *pfVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  float fVar20;
  float fVar21;
  float fVar22;
  float fVar23;
  float fVar24;
  float fVar25;
  ulonglong uVar26;
  double dVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  double dVar30;
  int iVar31;
  
  iVar18 = *(int *)(param_1 + 1);
  iVar16 = *(int *)(iVar18 + 0x1c);
  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar2 = PTR_s_ltiple_images_003f98e8;
  puVar1 = PTR_UINT_003f98e4;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar31 = iVar16 / iVar3;
  iVar16 = iVar16 % iVar3;
  if (iVar4 < iVar16) {
    iVar31 = iVar31 + 1;
    iVar16 = 0;
  }
  iVar16 = iVar31 * iVar4 + iVar16;
  iVar31 = iVar31 + iVar16;
  if (iVar16 < iVar31) {
    iVar15 = *(int *)(param_1 + 6);
    iVar3 = *(int *)((int)param_1 + 0x2c);
    iVar19 = *(int *)((int)param_1 + 0x24);
    uVar29 = (ulonglong)*(uint *)(param_1 + 4);
    iVar4 = *(int *)((int)param_1 + 0x1c);
    iVar5 = *(int *)(param_1 + 3);
    uVar6 = *(undefined4 *)((int)param_1 + 0x14);
    uVar7 = *(undefined4 *)(param_1 + 2);
    uVar8 = *(undefined4 *)((int)param_1 + 0xc);
    dVar30 = *param_1;
    iVar17 = iVar15 * 2;
    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);
    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);
    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);
    do {
      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)(param_1 + 5) != 0) {
        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)
                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);
        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);
        if ((iVar10 == 0) || (iVar11 == 0)) {
          *(undefined4 *)(param_1 + 5) = 0;
        }
        else {
          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);
          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;
          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);
          if (0 < *(int *)(iVar18 + 0x18)) {
            iVar9 = 0;
            fVar22 = *(float *)(puVar1 + -0x2a24);
            fVar24 = *(float *)(puVar2 + -0x7ee0);
            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);
            do {
              if (iVar15 < 1) {
                fVar21 = 0.0;
                fVar20 = *(float *)(puVar1 + -0x2a24);
                pfVar12 = pfVar14;
              }
              else {
                iVar13 = 0;
                fVar21 = 0.0;
                fVar20 = *(float *)(puVar1 + -0x2a24);
                pfVar12 = pfVar14;
                do {
                  fVar21 = fVar20 * *pfVar12 + fVar21;
                  iVar13 = iVar13 + 1;
                  fVar20 = fVar20 + (float)uVar26;
                  pfVar12 = pfVar12 + 1;
                } while (iVar15 != iVar13);
                pfVar12 = pfVar14 + iVar15;
              }
              iVar13 = iVar15 + 1;
              if (iVar13 < iVar17) {
                do {
                  fVar21 = fVar20 * *pfVar12 + fVar21;
                  iVar13 = iVar13 + 1;
                  fVar20 = fVar20 - fVar22;
                  pfVar12 = pfVar12 + 1;
                } while (iVar17 != iVar13);
              }
              iVar13 = *(int *)(iVar18 + 0x2d0);
              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);
              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +
                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +
                       fVar25 * fVar24;
              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +
                       fVar20) / fVar20;
              if ((*(uint *)(iVar13 + 4) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;
              }
              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =
                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;
              }
              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =
                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;
              }
              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;
              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;
              iVar9 = iVar9 + 1;
              pfVar14 = pfVar14 + 1;
            } while (iVar9 < *(int *)(iVar18 + 0x18));
          }
          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);
          if (iVar9 == 0) {
            *(undefined4 *)(param_1 + 5) = 0;
          }
        }
      }
      iVar16 = iVar16 + 1;
    } while (iVar31 != iVar16);
  }
  return;
}


lui gp,0x34
addiu gp,gp,0x2b20
addu gp,gp,t9
addiu sp,sp,-0xa0
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 f28,0x98(sp)
sdc1 f26,0x90(sp)
sdc1 f24,0x88(sp)
sdc1 f22,0x80(sp)
sdc1 f20,0x78(sp)
sw gp,0x18(sp)
or s6,a0,zero
lw s3,0x8(a0)
lw s1,0x1c(s3)
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,0x000bf1b0
_or s4,s0,zero
mul a0,v1,v0
addu s4,a0,s4
addu v0,v1,s4
sw v0,0x28(sp)
slt v0,s4,v0
beq v0,zero,0x000bf1bc
_lw s8,-0x7fcc(gp)
lw s0,0x30(s6)
lw v0,0x2c(s6)
sw v0,0x3c(sp)
lw s7,0x24(s6)
lwc1 f26,0x20(s6)
lw v0,0x1c(s6)
sw v0,0x40(sp)
lw v0,0x18(s6)
sw v0,0x44(sp)
lw v0,0x14(s6)
sw v0,0x34(sp)
lw v0,0x10(s6)
sw v0,0x38(sp)
lw v0,0xc(s6)
sw v0,0x24(sp)
ldc1 f28,0x0(s6)
sll s1,s0,0x1
sw s1,0x48(sp)
sll v0,s0,0x2
sw v0,0x2c(sp)
lwc1 f20,-0x2a24(s8)
lw v0,-0x7fc8(gp)
lwc1 f24,-0x7edc(v0)
lw v0,-0x7fc8(gp)
sw v0,0x4c(sp)
lw v0,-0x7fd0(gp)
b 0x000beecc
_ldc1 f22,0x4a58(v0)
sw zero,0x28(s6)
addiu s4,s4,0x1
lw v0,0x28(sp)
beq v0,s4,0x000bf1c0
_lw ra,0x74(sp)
lw t9,-0x7390(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw v0,0x30(sp)
lw v0,0x28(s6)
beq v0,zero,0x000beebc
_lw v0,0x24(sp)
lw a3,0x18(s3)
sw v0,0x14(sp)
li s5,0x1
sw s5,0x10(sp)
or a2,s4,zero
or a1,zero,zero
lw a0,0x38(sp)
lw t9,-0x723c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s2,v0,zero
lw a3,0x18(s3)
lw v0,0x24(sp)
sw v0,0x14(sp)
sw s5,0x10(sp)
or a2,s4,zero
or a1,zero,zero
lw a0,0x34(sp)
lw t9,-0x724c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq s2,zero,0x000beeb8
_or s5,v0,zero
beq v0,zero,0x000beeb8
_lw v0,0x3c(sp)
lw v1,0x30(sp)
mul v0,v0,v1
sll v0,v0,0x2
lw v1,0x40(sp)
addu a0,v1,v0
sw a0,0x30(sp)
lw a1,0x18(s3)
lw v0,0x48(sp)
addu a1,v0,a1
sll a1,a1,0x2
or a2,a1,zero
lw v0,0x44(sp)
mul v1,s4,a1
addu a1,v1,v0
lw t9,-0x7540(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x18(s3)
blez v0,0x000befc8
_lw a0,0x30(sp)
or a1,zero,zero
lwc1 f6,-0x2a24(s8)
lw v0,0x4c(sp)
lwc1 f10,-0x7ee0(v0)
lw v0,-0x7fc8(gp)
b 0x000bf028
_lwc1 f8,-0x7ed8(v0)
lw a1,0x24(sp)
lw a0,0x34(sp)
lw t9,-0x73a0(gp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x000beebc
_nop
b 0x000beebc
_sw zero,0x28(s6)
mtc1 zero,f2
b 0x000bf05c
_lwc1 f0,-0x2a24(s8)
lw v0,0x2c0(s3)
sll v0,v0,0x2
addu s2,s2,v0
lw v0,0x2c0(s7)
sll v0,v0,0x2
addu s5,s5,v0
addiu a1,a1,0x1
lw v0,0x18(s3)
slt v0,a1,v0
beq v0,zero,0x000befc8
_addiu a0,a0,0x4
blez s0,0x000beff0
_or v0,a0,zero
or v1,zero,zero
mtc1 zero,f2
lwc1 f0,-0x2a24(s8)
addiu v0,v0,0x4
lwc1 f4,-0x4(v0)
madd.S f2,f2,f0,f4
addiu v1,v1,0x1
bne s0,v1,0x000bf03c
_add.S f0,f0,f20
lw v0,0x2c(sp)
addu v0,a0,v0
addiu v1,s0,0x1
slt a2,v1,s1
beq a2,zero,0x000bf084
_nop
addiu v0,v0,0x4
lwc1 f4,-0x4(v0)
madd.S f2,f2,f0,f4
addiu v1,v1,0x1
bne s1,v1,0x000bf06c
_sub.S S f0,f0,f6
lw v0,0x2d0(s3)
lw v1,0x8(v0)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f12,0x0(v1)
lw v1,0x14(v0)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f4,0x0(v1)
mul.S f0,f12,f10
madd.S f4,f0,f4,f24
lw v1,0x20(v0)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f0,0x0(v1)
madd.S f4,f4,f0,f8
div.S f0,f2,f26
sub.S S f0,f4,f0
cvt.d.S f0,f0
div.D f2,f28,f22
mul.D f0,f0,f2
cvt.s.D f0,f0
add.S f0,f0,f4
lw v0,0x4(v0)
andi v0,v0,0x2
bne v0,zero,0x000bf188
_div.S f0,f0,f4
lw v1,0x2d0(s3)
lw v0,0x10(v1)
andi v0,v0,0x2
bne v0,zero,0x000bf150
_nop
lw v1,0x2d0(s3)
lw v0,0x1c(v1)
andi v0,v0,0x2
beq v0,zero,0x000beffc
_nop
lw v0,0x2d0(s7)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s5,v0
lw v1,0x20(v1)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f2,0x0(v1)
cvt.d.S f2,f2
cvt.d.S f0,f0
mul.D f0,f2,f0
cvt.s.D f0,f0
b 0x000beffc
_swc1 f0,0x0(v0)
lw v0,0x2d0(s7)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s5,v0
lw v1,0x14(v1)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f2,0x0(v1)
cvt.d.S f2,f2
cvt.d.S f4,f0
mul.D f2,f2,f4
cvt.s.D f2,f2
b 0x000bf104
_swc1 f2,0x0(v0)
lw v0,0x2d0(s7)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s5,v0
cvt.d.S f2,f12
cvt.d.S f4,f0
mul.D f2,f2,f4
cvt.s.D f2,f2
b 0x000bf0f0
_swc1 f2,0x0(v0)
addiu v1,v1,0x1
b 0x000bee2c
_or s4,zero,zero
lw ra,0x74(sp)
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 f28,0x98(sp)
ldc1 f26,0x90(sp)
ldc1 f24,0x88(sp)
ldc1 f22,0x80(sp)
ldc1 f20,0x78(sp)
jr ra
_addiu sp,sp,0xa0
(translation_unit "void FUN_000bed90(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000bed90(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000bed90(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  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\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 "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "float *pfVar12;" primitive_type (pointer_declarator "*pfVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "float *pfVar14;" primitive_type (pointer_declarator "*pfVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "float fVar20;" primitive_type identifier ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "float fVar22;" primitive_type identifier ;) (declaration "float fVar23;" primitive_type identifier ;) (declaration "float fVar24;" primitive_type identifier ;) (declaration "float fVar25;" primitive_type identifier ;) (declaration "ulonglong uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "ulonglong uVar28;" type_identifier identifier ;) (declaration "ulonglong uVar29;" type_identifier identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (expression_statement "iVar18 = *(int *)(param_1 + 1);" (assignment_expression "iVar18 = *(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 "iVar16 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" 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 "puVar2 = PTR_s_ltiple_images_003f98e8;" (assignment_expression "puVar2 = PTR_s_ltiple_images_003f98e8" identifier = identifier) ;) (expression_statement "puVar1 = PTR_UINT_003f98e4;" (assignment_expression "puVar1 = PTR_UINT_003f98e4" 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 "iVar31 = iVar16 / iVar3;" (assignment_expression "iVar31 = iVar16 / iVar3" identifier = (binary_expression "iVar16 / iVar3" identifier / identifier)) ;) (expression_statement "iVar16 = iVar16 % iVar3;" (assignment_expression "iVar16 = iVar16 % iVar3" identifier = (binary_expression "iVar16 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar16)" ( (binary_expression "iVar4 < iVar16" identifier < identifier) )) (compound_statement "{\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" { (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) })) (expression_statement "iVar16 = iVar31 * iVar4 + iVar16;" (assignment_expression "iVar16 = iVar31 * iVar4 + iVar16" identifier = (binary_expression "iVar31 * iVar4 + iVar16" (binary_expression "iVar31 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar31 = iVar31 + iVar16;" (assignment_expression "iVar31 = iVar31 + iVar16" identifier = (binary_expression "iVar31 + iVar16" identifier + identifier)) ;) (if_statement "if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" if (parenthesized_expression "(iVar16 < iVar31)" ( (binary_expression "iVar16 < iVar31" identifier < identifier) )) (compound_statement "{\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" { (expression_statement "iVar15 = *(int *)(param_1 + 6);" (assignment_expression "iVar15 = *(int *)(param_1 + 6)" identifier = (pointer_expression "*(int *)(param_1 + 6)" * (cast_expression "(int *)(param_1 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)((int)param_1 + 0x2c);" (assignment_expression "iVar3 = *(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 "*" *)) ) (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 "iVar19 = *(int *)((int)param_1 + 0x24);" (assignment_expression "iVar19 = *(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 "uVar29 = (ulonglong)*(uint *)(param_1 + 4);" (assignment_expression "uVar29 = (ulonglong)*(uint *)(param_1 + 4)" identifier = (binary_expression "(ulonglong)*(uint *)(param_1 + 4)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)param_1 + 0x1c);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0x1c)" identifier = (pointer_expression "*(int *)((int)param_1 + 0x1c)" * (cast_expression "(int *)((int)param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (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 "iVar5 = *(int *)(param_1 + 3);" (assignment_expression "iVar5 = *(int *)(param_1 + 3)" identifier = (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)((int)param_1 + 0x14);" (assignment_expression "uVar6 = *(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 "uVar7 = *(undefined4 *)(param_1 + 2);" (assignment_expression "uVar7 = *(undefined4 *)(param_1 + 2)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 2)" * (cast_expression "(undefined4 *)(param_1 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)((int)param_1 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)((int)param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)param_1 + 0xc)" * (cast_expression "(undefined4 *)((int)param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (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 "dVar30 = *param_1;" (assignment_expression "dVar30 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar17 = iVar15 * 2;" (assignment_expression "iVar17 = iVar15 * 2" identifier = (binary_expression "iVar15 * 2" identifier * number_literal)) ;) (expression_statement "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);" (assignment_expression "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_UINT_003f98e4 + -0x2a24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a24)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);" (assignment_expression "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7edc)" ( (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7edc" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a58)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a58)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a58" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);" do (compound_statement "{\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    }" { (expression_statement "iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar9 = (*(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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }" { (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" if (parenthesized_expression "((iVar10 == 0) || (iVar11 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar11 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" else (compound_statement "{\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" { (expression_statement "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);" (assignment_expression "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar3 * iVar9 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar3 * iVar9 * 4)" ( (binary_expression "iVar4 + iVar3 * iVar9 * 4" identifier + (binary_expression "iVar3 * iVar9 * 4" (binary_expression "iVar3 * iVar9" identifier * identifier) * number_literal)) )))) ;) (expression_statement "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;" (assignment_expression "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4" identifier = (binary_expression "(iVar17 + *(int *)(iVar18 + 0x18)) * 4" (parenthesized_expression "(iVar17 + *(int *)(iVar18 + 0x18))" ( (binary_expression "iVar17 + *(int *)(iVar18 + 0x18)" identifier + (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) * number_literal)) ;) (expression_statement "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);" (call_expression "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_003fa370)" ( (pointer_expression "*(code *)PTR_memcpy_003fa370" * (cast_expression "(code *)PTR_memcpy_003fa370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" ( identifier , (binary_expression "iVar16 * iVar9 + iVar5" (binary_expression "iVar16 * iVar9" identifier * identifier) + identifier) , identifier ))) ;) (if_statement "if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" if (parenthesized_expression "(0 < *(int *)(iVar18 + 0x18))" ( (binary_expression "0 < *(int *)(iVar18 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "fVar22 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar22 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "fVar24 = *(float *)(puVar2 + -0x7ee0);" (assignment_expression "fVar24 = *(float *)(puVar2 + -0x7ee0)" identifier = (pointer_expression "*(float *)(puVar2 + -0x7ee0)" * (cast_expression "(float *)(puVar2 + -0x7ee0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x7ee0)" ( (binary_expression "puVar2 + -0x7ee0" identifier + number_literal) ))))) ;) (expression_statement "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);" (assignment_expression "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" identifier = (pointer_expression "*(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" * (cast_expression "(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" ( (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7ed8" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));" do (compound_statement "{\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            }" { (if_statement "if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" if (parenthesized_expression "(iVar15 < 1)" ( (binary_expression "iVar15 < 1" identifier < number_literal) )) (compound_statement "{\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }" { (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" identifier = number_literal) ;) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" identifier = identifier) ;) }) (else_clause "else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" else (compound_statement "{\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" identifier = number_literal) ;) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" identifier = identifier) ;) (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);" do (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                }" { (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" identifier = (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" identifier * (pointer_expression "*pfVar12" * identifier)) + identifier)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "fVar20 = fVar20 + (float)uVar26;" (assignment_expression "fVar20 = fVar20 + (float)uVar26" identifier = (binary_expression "fVar20 + (float)uVar26" identifier + (cast_expression "(float)uVar26" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" identifier = (binary_expression "pfVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != iVar13)" ( (binary_expression "iVar15 != iVar13" identifier != identifier) )) ;) (expression_statement "pfVar12 = pfVar14 + iVar15;" (assignment_expression "pfVar12 = pfVar14 + iVar15" identifier = (binary_expression "pfVar14 + iVar15" identifier + identifier)) ;) }))) (expression_statement "iVar13 = iVar15 + 1;" (assignment_expression "iVar13 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" if (parenthesized_expression "(iVar13 < iVar17)" ( (binary_expression "iVar13 < iVar17" identifier < identifier) )) (compound_statement "{\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" { (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);" do (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                }" { (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" identifier = (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" identifier * (pointer_expression "*pfVar12" * identifier)) + identifier)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "fVar20 = fVar20 - fVar22;" (assignment_expression "fVar20 = fVar20 - fVar22" identifier = (binary_expression "fVar20 - fVar22" identifier - identifier)) ;) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" identifier = (binary_expression "pfVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != iVar13)" ( (binary_expression "iVar17 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar13 = *(int *)(iVar18 + 0x2d0);" (assignment_expression "iVar13 = *(int *)(iVar18 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);" (assignment_expression "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" identifier = (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 4" identifier + (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;" (assignment_expression "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" identifier = (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 4" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))) * identifier) + (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 4" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) )))) * (cast_expression "(float)uVar28" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar25 * fVar24" identifier * identifier))) ;) (expression_statement "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;" (assignment_expression "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" identifier = (binary_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" (parenthesized_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20)" ( (binary_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20" (cast_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" ( (binary_expression "(double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)" (cast_expression "(double)(fVar20 - fVar21 / (float)uVar29)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar20 - fVar21 / (float)uVar29)" ( (binary_expression "fVar20 - fVar21 / (float)uVar29" identifier - (binary_expression "fVar21 / (float)uVar29" identifier / (cast_expression "(float)uVar29" ( (type_descriptor "float" primitive_type) ) identifier))) ))) * (parenthesized_expression "(dVar30 / dVar27)" ( (binary_expression "dVar30 / dVar27" identifier / identifier) ))) ))) + identifier) )) / identifier)) ;) (if_statement "if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(iVar13 + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 4) & 2)" ( (binary_expression "*(uint *)(iVar13 + 4) & 2" (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 8)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 8" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "fVar25 * fVar20" identifier * identifier)) ;) })) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x10)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x10" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier)) ;) })) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x1c)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x1c" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier)) ;) })) (expression_statement "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4" identifier = (binary_expression "iVar10 + *(int *)(iVar18 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar18 + 0x2c0)" * (cast_expression "(int *)(iVar18 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c0)" ( (binary_expression "iVar18 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;" (assignment_expression "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4" identifier = (binary_expression "iVar11 + *(int *)(iVar19 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar19 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar19 + 0x2c0)" * (cast_expression "(int *)(iVar19 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2c0)" ( (binary_expression "iVar19 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pfVar14 = pfVar14 + 1;" (assignment_expression "pfVar14 = pfVar14 + 1" identifier = (binary_expression "pfVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar18 + 0x18))" ( (binary_expression "iVar9 < *(int *)(iVar18 + 0x18)" identifier < (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);" (assignment_expression "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" (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 "(uVar6,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 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 "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar31 != iVar16)" ( (binary_expression "iVar31 != iVar16" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void LocalContrastImage._omp_fn.6(anon_struct_56_12_26f1cbcd * param_0)\n    */\n\nvoid __thiscall LocalContrastImage__omp_fn_6(void *this)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)((int)this + 8);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)((int)this + 0x30);\n    iVar3 = *(int *)((int)this + 0x2c);\n    iVar19 = *(int *)((int)this + 0x24);\n    uVar29 = (ulonglong)*(uint *)((int)this + 0x20);\n    iVar4 = *(int *)((int)this + 0x1c);\n    iVar5 = *(int *)((int)this + 0x18);\n    uVar6 = *(undefined4 *)((int)this + 0x14);\n    uVar7 = *(undefined4 *)((int)this + 0x10);\n    uVar8 = *(undefined4 *)((int)this + 0xc);\n                    /* WARNING: Load size is inaccurate */\n    dVar30 = *this;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall LocalContrastImage__omp_fn_6(void *this)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)((int)this + 8);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)((int)this + 0x30);\n    iVar3 = *(int *)((int)this + 0x2c);\n    iVar19 = *(int *)((int)this + 0x24);\n    uVar29 = (ulonglong)*(uint *)((int)this + 0x20);\n    iVar4 = *(int *)((int)this + 0x1c);\n    iVar5 = *(int *)((int)this + 0x18);\n    uVar6 = *(undefined4 *)((int)this + 0x14);\n    uVar7 = *(undefined4 *)((int)this + 0x10);\n    uVar8 = *(undefined4 *)((int)this + 0xc);\n                    /* WARNING: Load size is inaccurate */\n    dVar30 = *this;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "LocalContrastImage__omp_fn_6(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  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)((int)this + 8);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)((int)this + 0x30);\n    iVar3 = *(int *)((int)this + 0x2c);\n    iVar19 = *(int *)((int)this + 0x24);\n    uVar29 = (ulonglong)*(uint *)((int)this + 0x20);\n    iVar4 = *(int *)((int)this + 0x1c);\n    iVar5 = *(int *)((int)this + 0x18);\n    uVar6 = *(undefined4 *)((int)this + 0x14);\n    uVar7 = *(undefined4 *)((int)this + 0x10);\n    uVar8 = *(undefined4 *)((int)this + 0xc);\n                    /* WARNING: Load size is inaccurate */\n    dVar30 = *this;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\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 "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "float *pfVar12;" primitive_type (pointer_declarator "*pfVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "float *pfVar14;" primitive_type (pointer_declarator "*pfVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "float fVar20;" primitive_type identifier ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "float fVar22;" primitive_type identifier ;) (declaration "float fVar23;" primitive_type identifier ;) (declaration "float fVar24;" primitive_type identifier ;) (declaration "float fVar25;" primitive_type identifier ;) (declaration "ulonglong uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "ulonglong uVar28;" type_identifier identifier ;) (declaration "ulonglong uVar29;" type_identifier identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (expression_statement "iVar18 = *(int *)((int)this + 8);" (assignment_expression "iVar18 = *(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 "iVar16 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" 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 "puVar2 = PTR_s_ltiple_images_003f98e8;" (assignment_expression "puVar2 = PTR_s_ltiple_images_003f98e8" identifier = identifier) ;) (expression_statement "puVar1 = PTR_UINT_003f98e4;" (assignment_expression "puVar1 = PTR_UINT_003f98e4" 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 "iVar31 = iVar16 / iVar3;" (assignment_expression "iVar31 = iVar16 / iVar3" identifier = (binary_expression "iVar16 / iVar3" identifier / identifier)) ;) (expression_statement "iVar16 = iVar16 % iVar3;" (assignment_expression "iVar16 = iVar16 % iVar3" identifier = (binary_expression "iVar16 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar16)" ( (binary_expression "iVar4 < iVar16" identifier < identifier) )) (compound_statement "{\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" { (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) })) (expression_statement "iVar16 = iVar31 * iVar4 + iVar16;" (assignment_expression "iVar16 = iVar31 * iVar4 + iVar16" identifier = (binary_expression "iVar31 * iVar4 + iVar16" (binary_expression "iVar31 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar31 = iVar31 + iVar16;" (assignment_expression "iVar31 = iVar31 + iVar16" identifier = (binary_expression "iVar31 + iVar16" identifier + identifier)) ;) (if_statement "if (iVar16 < iVar31) {\n    iVar15 = *(int *)((int)this + 0x30);\n    iVar3 = *(int *)((int)this + 0x2c);\n    iVar19 = *(int *)((int)this + 0x24);\n    uVar29 = (ulonglong)*(uint *)((int)this + 0x20);\n    iVar4 = *(int *)((int)this + 0x1c);\n    iVar5 = *(int *)((int)this + 0x18);\n    uVar6 = *(undefined4 *)((int)this + 0x14);\n    uVar7 = *(undefined4 *)((int)this + 0x10);\n    uVar8 = *(undefined4 *)((int)this + 0xc);\n                    /* WARNING: Load size is inaccurate */\n    dVar30 = *this;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" if (parenthesized_expression "(iVar16 < iVar31)" ( (binary_expression "iVar16 < iVar31" identifier < identifier) )) (compound_statement "{\n    iVar15 = *(int *)((int)this + 0x30);\n    iVar3 = *(int *)((int)this + 0x2c);\n    iVar19 = *(int *)((int)this + 0x24);\n    uVar29 = (ulonglong)*(uint *)((int)this + 0x20);\n    iVar4 = *(int *)((int)this + 0x1c);\n    iVar5 = *(int *)((int)this + 0x18);\n    uVar6 = *(undefined4 *)((int)this + 0x14);\n    uVar7 = *(undefined4 *)((int)this + 0x10);\n    uVar8 = *(undefined4 *)((int)this + 0xc);\n                    /* WARNING: Load size is inaccurate */\n    dVar30 = *this;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" { (expression_statement "iVar15 = *(int *)((int)this + 0x30);" (assignment_expression "iVar15 = *(int *)((int)this + 0x30)" identifier = (pointer_expression "*(int *)((int)this + 0x30)" * (cast_expression "(int *)((int)this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x30)" ( (binary_expression "(int)this + 0x30" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)((int)this + 0x2c);" (assignment_expression "iVar3 = *(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 "*" *)) ) (parenthesized_expression "((int)this + 0x2c)" ( (binary_expression "(int)this + 0x2c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)((int)this + 0x24);" (assignment_expression "iVar19 = *(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 "uVar29 = (ulonglong)*(uint *)((int)this + 0x20);" (assignment_expression "uVar29 = (ulonglong)*(uint *)((int)this + 0x20)" identifier = (binary_expression "(ulonglong)*(uint *)((int)this + 0x20)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)((int)this + 0x20)" ( (type_descriptor "uint *" type_identifier (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) ))))) ;) (expression_statement "iVar4 = *(int *)((int)this + 0x1c);" (assignment_expression "iVar4 = *(int *)((int)this + 0x1c)" identifier = (pointer_expression "*(int *)((int)this + 0x1c)" * (cast_expression "(int *)((int)this + 0x1c)" ( (type_descriptor "int *" primitive_type (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 "iVar5 = *(int *)((int)this + 0x18);" (assignment_expression "iVar5 = *(int *)((int)this + 0x18)" identifier = (pointer_expression "*(int *)((int)this + 0x18)" * (cast_expression "(int *)((int)this + 0x18)" ( (type_descriptor "int *" primitive_type (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 "uVar6 = *(undefined4 *)((int)this + 0x14);" (assignment_expression "uVar6 = *(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) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)((int)this + 0x10);" (assignment_expression "uVar7 = *(undefined4 *)((int)this + 0x10)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x10)" * (cast_expression "(undefined4 *)((int)this + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (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 "uVar8 = *(undefined4 *)((int)this + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)((int)this + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0xc)" * (cast_expression "(undefined4 *)((int)this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (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) ))))) ;) comment (expression_statement "dVar30 = *this;" (assignment_expression "dVar30 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "iVar17 = iVar15 * 2;" (assignment_expression "iVar17 = iVar15 * 2" identifier = (binary_expression "iVar15 * 2" identifier * number_literal)) ;) (expression_statement "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);" (assignment_expression "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_UINT_003f98e4 + -0x2a24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a24)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);" (assignment_expression "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7edc)" ( (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7edc" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a58)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a58)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a58" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);" do (compound_statement "{\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)((int)this + 0x28) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    }" { (expression_statement "iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar9 = (*(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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }" { (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)((int)this + 0x28) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }" if (parenthesized_expression "((iVar10 == 0) || (iVar11 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar11 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }" else (compound_statement "{\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }" { (expression_statement "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);" (assignment_expression "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar3 * iVar9 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar3 * iVar9 * 4)" ( (binary_expression "iVar4 + iVar3 * iVar9 * 4" identifier + (binary_expression "iVar3 * iVar9 * 4" (binary_expression "iVar3 * iVar9" identifier * identifier) * number_literal)) )))) ;) (expression_statement "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;" (assignment_expression "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4" identifier = (binary_expression "(iVar17 + *(int *)(iVar18 + 0x18)) * 4" (parenthesized_expression "(iVar17 + *(int *)(iVar18 + 0x18))" ( (binary_expression "iVar17 + *(int *)(iVar18 + 0x18)" identifier + (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) * number_literal)) ;) (expression_statement "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);" (call_expression "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_003fa370)" ( (pointer_expression "*(code *)PTR_memcpy_003fa370" * (cast_expression "(code *)PTR_memcpy_003fa370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" ( identifier , (binary_expression "iVar16 * iVar9 + iVar5" (binary_expression "iVar16 * iVar9" identifier * identifier) + identifier) , identifier ))) ;) (if_statement "if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" if (parenthesized_expression "(0 < *(int *)(iVar18 + 0x18))" ( (binary_expression "0 < *(int *)(iVar18 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "fVar22 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar22 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "fVar24 = *(float *)(puVar2 + -0x7ee0);" (assignment_expression "fVar24 = *(float *)(puVar2 + -0x7ee0)" identifier = (pointer_expression "*(float *)(puVar2 + -0x7ee0)" * (cast_expression "(float *)(puVar2 + -0x7ee0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x7ee0)" ( (binary_expression "puVar2 + -0x7ee0" identifier + number_literal) ))))) ;) (expression_statement "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);" (assignment_expression "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" identifier = (pointer_expression "*(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" * (cast_expression "(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" ( (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7ed8" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));" do (compound_statement "{\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            }" { (if_statement "if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" if (parenthesized_expression "(iVar15 < 1)" ( (binary_expression "iVar15 < 1" identifier < number_literal) )) (compound_statement "{\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }" { (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" identifier = number_literal) ;) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" identifier = identifier) ;) }) (else_clause "else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" else (compound_statement "{\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" identifier = number_literal) ;) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" identifier = identifier) ;) (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);" do (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                }" { (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" identifier = (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" identifier * (pointer_expression "*pfVar12" * identifier)) + identifier)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "fVar20 = fVar20 + (float)uVar26;" (assignment_expression "fVar20 = fVar20 + (float)uVar26" identifier = (binary_expression "fVar20 + (float)uVar26" identifier + (cast_expression "(float)uVar26" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" identifier = (binary_expression "pfVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != iVar13)" ( (binary_expression "iVar15 != iVar13" identifier != identifier) )) ;) (expression_statement "pfVar12 = pfVar14 + iVar15;" (assignment_expression "pfVar12 = pfVar14 + iVar15" identifier = (binary_expression "pfVar14 + iVar15" identifier + identifier)) ;) }))) (expression_statement "iVar13 = iVar15 + 1;" (assignment_expression "iVar13 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" if (parenthesized_expression "(iVar13 < iVar17)" ( (binary_expression "iVar13 < iVar17" identifier < identifier) )) (compound_statement "{\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" { (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);" do (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                }" { (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" identifier = (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" identifier * (pointer_expression "*pfVar12" * identifier)) + identifier)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "fVar20 = fVar20 - fVar22;" (assignment_expression "fVar20 = fVar20 - fVar22" identifier = (binary_expression "fVar20 - fVar22" identifier - identifier)) ;) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" identifier = (binary_expression "pfVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != iVar13)" ( (binary_expression "iVar17 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar13 = *(int *)(iVar18 + 0x2d0);" (assignment_expression "iVar13 = *(int *)(iVar18 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);" (assignment_expression "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" identifier = (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 4" identifier + (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;" (assignment_expression "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" identifier = (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 4" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))) * identifier) + (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 4" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) )))) * (cast_expression "(float)uVar28" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar25 * fVar24" identifier * identifier))) ;) (expression_statement "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;" (assignment_expression "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" identifier = (binary_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" (parenthesized_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20)" ( (binary_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20" (cast_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" ( (binary_expression "(double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)" (cast_expression "(double)(fVar20 - fVar21 / (float)uVar29)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar20 - fVar21 / (float)uVar29)" ( (binary_expression "fVar20 - fVar21 / (float)uVar29" identifier - (binary_expression "fVar21 / (float)uVar29" identifier / (cast_expression "(float)uVar29" ( (type_descriptor "float" primitive_type) ) identifier))) ))) * (parenthesized_expression "(dVar30 / dVar27)" ( (binary_expression "dVar30 / dVar27" identifier / identifier) ))) ))) + identifier) )) / identifier)) ;) (if_statement "if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(iVar13 + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 4) & 2)" ( (binary_expression "*(uint *)(iVar13 + 4) & 2" (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 8)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 8" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "fVar25 * fVar20" identifier * identifier)) ;) })) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x10)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x10" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier)) ;) })) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x1c)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x1c" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier)) ;) })) (expression_statement "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4" identifier = (binary_expression "iVar10 + *(int *)(iVar18 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar18 + 0x2c0)" * (cast_expression "(int *)(iVar18 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c0)" ( (binary_expression "iVar18 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;" (assignment_expression "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4" identifier = (binary_expression "iVar11 + *(int *)(iVar19 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar19 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar19 + 0x2c0)" * (cast_expression "(int *)(iVar19 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2c0)" ( (binary_expression "iVar19 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pfVar14 = pfVar14 + 1;" (assignment_expression "pfVar14 = pfVar14 + 1" identifier = (binary_expression "pfVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar18 + 0x18))" ( (binary_expression "iVar9 < *(int *)(iVar18 + 0x18)" identifier < (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);" (assignment_expression "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" (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 "(uVar6,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 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 "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar31 != iVar16)" ( (binary_expression "iVar31 != iVar16" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000bed90(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000bed90(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000bed90(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  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\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 "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "float *pfVar12;" primitive_type (pointer_declarator "*pfVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "float *pfVar14;" primitive_type (pointer_declarator "*pfVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "float fVar20;" primitive_type identifier ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "float fVar22;" primitive_type identifier ;) (declaration "float fVar23;" primitive_type identifier ;) (declaration "float fVar24;" primitive_type identifier ;) (declaration "float fVar25;" primitive_type identifier ;) (declaration "ulonglong uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "ulonglong uVar28;" type_identifier identifier ;) (declaration "ulonglong uVar29;" type_identifier identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (expression_statement "iVar18 = *(int *)(param_1 + 1);" (assignment_expression "iVar18 = *(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 "iVar16 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" 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 "puVar2 = PTR_s_ltiple_images_003f98e8;" (assignment_expression "puVar2 = PTR_s_ltiple_images_003f98e8" identifier = identifier) ;) (expression_statement "puVar1 = PTR_UINT_003f98e4;" (assignment_expression "puVar1 = PTR_UINT_003f98e4" 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 "iVar31 = iVar16 / iVar3;" (assignment_expression "iVar31 = iVar16 / iVar3" identifier = (binary_expression "iVar16 / iVar3" identifier / identifier)) ;) (expression_statement "iVar16 = iVar16 % iVar3;" (assignment_expression "iVar16 = iVar16 % iVar3" identifier = (binary_expression "iVar16 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar16)" ( (binary_expression "iVar4 < iVar16" identifier < identifier) )) (compound_statement "{\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" { (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) })) (expression_statement "iVar16 = iVar31 * iVar4 + iVar16;" (assignment_expression "iVar16 = iVar31 * iVar4 + iVar16" identifier = (binary_expression "iVar31 * iVar4 + iVar16" (binary_expression "iVar31 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar31 = iVar31 + iVar16;" (assignment_expression "iVar31 = iVar31 + iVar16" identifier = (binary_expression "iVar31 + iVar16" identifier + identifier)) ;) (if_statement "if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" if (parenthesized_expression "(iVar16 < iVar31)" ( (binary_expression "iVar16 < iVar31" identifier < identifier) )) (compound_statement "{\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" { (expression_statement "iVar15 = *(int *)(param_1 + 6);" (assignment_expression "iVar15 = *(int *)(param_1 + 6)" identifier = (pointer_expression "*(int *)(param_1 + 6)" * (cast_expression "(int *)(param_1 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)((int)param_1 + 0x2c);" (assignment_expression "iVar3 = *(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 "*" *)) ) (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 "iVar19 = *(int *)((int)param_1 + 0x24);" (assignment_expression "iVar19 = *(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 "uVar29 = (ulonglong)*(uint *)(param_1 + 4);" (assignment_expression "uVar29 = (ulonglong)*(uint *)(param_1 + 4)" identifier = (binary_expression "(ulonglong)*(uint *)(param_1 + 4)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)param_1 + 0x1c);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0x1c)" identifier = (pointer_expression "*(int *)((int)param_1 + 0x1c)" * (cast_expression "(int *)((int)param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (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 "iVar5 = *(int *)(param_1 + 3);" (assignment_expression "iVar5 = *(int *)(param_1 + 3)" identifier = (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)((int)param_1 + 0x14);" (assignment_expression "uVar6 = *(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 "uVar7 = *(undefined4 *)(param_1 + 2);" (assignment_expression "uVar7 = *(undefined4 *)(param_1 + 2)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 2)" * (cast_expression "(undefined4 *)(param_1 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)((int)param_1 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)((int)param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)param_1 + 0xc)" * (cast_expression "(undefined4 *)((int)param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (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 "dVar30 = *param_1;" (assignment_expression "dVar30 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar17 = iVar15 * 2;" (assignment_expression "iVar17 = iVar15 * 2" identifier = (binary_expression "iVar15 * 2" identifier * number_literal)) ;) (expression_statement "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);" (assignment_expression "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_UINT_003f98e4 + -0x2a24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a24)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);" (assignment_expression "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7edc)" ( (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7edc" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a58)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a58)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a58" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);" do (compound_statement "{\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    }" { (expression_statement "iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar9 = (*(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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }" { (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" if (parenthesized_expression "((iVar10 == 0) || (iVar11 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar11 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" else (compound_statement "{\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" { (expression_statement "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);" (assignment_expression "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar3 * iVar9 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar3 * iVar9 * 4)" ( (binary_expression "iVar4 + iVar3 * iVar9 * 4" identifier + (binary_expression "iVar3 * iVar9 * 4" (binary_expression "iVar3 * iVar9" identifier * identifier) * number_literal)) )))) ;) (expression_statement "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;" (assignment_expression "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4" identifier = (binary_expression "(iVar17 + *(int *)(iVar18 + 0x18)) * 4" (parenthesized_expression "(iVar17 + *(int *)(iVar18 + 0x18))" ( (binary_expression "iVar17 + *(int *)(iVar18 + 0x18)" identifier + (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) * number_literal)) ;) (expression_statement "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);" (call_expression "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_003fa370)" ( (pointer_expression "*(code *)PTR_memcpy_003fa370" * (cast_expression "(code *)PTR_memcpy_003fa370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" ( identifier , (binary_expression "iVar16 * iVar9 + iVar5" (binary_expression "iVar16 * iVar9" identifier * identifier) + identifier) , identifier ))) ;) (if_statement "if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" if (parenthesized_expression "(0 < *(int *)(iVar18 + 0x18))" ( (binary_expression "0 < *(int *)(iVar18 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "fVar22 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar22 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "fVar24 = *(float *)(puVar2 + -0x7ee0);" (assignment_expression "fVar24 = *(float *)(puVar2 + -0x7ee0)" identifier = (pointer_expression "*(float *)(puVar2 + -0x7ee0)" * (cast_expression "(float *)(puVar2 + -0x7ee0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x7ee0)" ( (binary_expression "puVar2 + -0x7ee0" identifier + number_literal) ))))) ;) (expression_statement "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);" (assignment_expression "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" identifier = (pointer_expression "*(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" * (cast_expression "(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" ( (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7ed8" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));" do (compound_statement "{\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            }" { (if_statement "if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" if (parenthesized_expression "(iVar15 < 1)" ( (binary_expression "iVar15 < 1" identifier < number_literal) )) (compound_statement "{\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }" { (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" identifier = number_literal) ;) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" identifier = identifier) ;) }) (else_clause "else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" else (compound_statement "{\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" identifier = number_literal) ;) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" identifier = (pointer_expression "*(float *)(puVar1 + -0x2a24)" * (cast_expression "(float *)(puVar1 + -0x2a24)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x2a24)" ( (binary_expression "puVar1 + -0x2a24" identifier + number_literal) ))))) ;) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" identifier = identifier) ;) (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);" do (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                }" { (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" identifier = (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" identifier * (pointer_expression "*pfVar12" * identifier)) + identifier)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "fVar20 = fVar20 + (float)uVar26;" (assignment_expression "fVar20 = fVar20 + (float)uVar26" identifier = (binary_expression "fVar20 + (float)uVar26" identifier + (cast_expression "(float)uVar26" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" identifier = (binary_expression "pfVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != iVar13)" ( (binary_expression "iVar15 != iVar13" identifier != identifier) )) ;) (expression_statement "pfVar12 = pfVar14 + iVar15;" (assignment_expression "pfVar12 = pfVar14 + iVar15" identifier = (binary_expression "pfVar14 + iVar15" identifier + identifier)) ;) }))) (expression_statement "iVar13 = iVar15 + 1;" (assignment_expression "iVar13 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" if (parenthesized_expression "(iVar13 < iVar17)" ( (binary_expression "iVar13 < iVar17" identifier < identifier) )) (compound_statement "{\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" { (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);" do (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                }" { (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" identifier = (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" identifier * (pointer_expression "*pfVar12" * identifier)) + identifier)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "fVar20 = fVar20 - fVar22;" (assignment_expression "fVar20 = fVar20 - fVar22" identifier = (binary_expression "fVar20 - fVar22" identifier - identifier)) ;) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" identifier = (binary_expression "pfVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != iVar13)" ( (binary_expression "iVar17 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar13 = *(int *)(iVar18 + 0x2d0);" (assignment_expression "iVar13 = *(int *)(iVar18 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);" (assignment_expression "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" identifier = (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 4" identifier + (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;" (assignment_expression "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" identifier = (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 4" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))) * identifier) + (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 4)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 4" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) )))) * (cast_expression "(float)uVar28" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar25 * fVar24" identifier * identifier))) ;) (expression_statement "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;" (assignment_expression "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" identifier = (binary_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" (parenthesized_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20)" ( (binary_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20" (cast_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" ( (binary_expression "(double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)" (cast_expression "(double)(fVar20 - fVar21 / (float)uVar29)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar20 - fVar21 / (float)uVar29)" ( (binary_expression "fVar20 - fVar21 / (float)uVar29" identifier - (binary_expression "fVar21 / (float)uVar29" identifier / (cast_expression "(float)uVar29" ( (type_descriptor "float" primitive_type) ) identifier))) ))) * (parenthesized_expression "(dVar30 / dVar27)" ( (binary_expression "dVar30 / dVar27" identifier / identifier) ))) ))) + identifier) )) / identifier)) ;) (if_statement "if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(iVar13 + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 4) & 2)" ( (binary_expression "*(uint *)(iVar13 + 4) & 2" (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 8)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 8" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "fVar25 * fVar20" identifier * identifier)) ;) })) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x10)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x10" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier)) ;) })) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x1c)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x1c" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" { (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar19 + 0x2d0)" * (cast_expression "(int *)(iVar19 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2d0)" ( (binary_expression "iVar19 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x2d0)" * (cast_expression "(int *)(iVar18 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d0)" ( (binary_expression "iVar18 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier)) ;) })) (expression_statement "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4" identifier = (binary_expression "iVar10 + *(int *)(iVar18 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar18 + 0x2c0)" * (cast_expression "(int *)(iVar18 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c0)" ( (binary_expression "iVar18 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;" (assignment_expression "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4" identifier = (binary_expression "iVar11 + *(int *)(iVar19 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar19 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar19 + 0x2c0)" * (cast_expression "(int *)(iVar19 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2c0)" ( (binary_expression "iVar19 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pfVar14 = pfVar14 + 1;" (assignment_expression "pfVar14 = pfVar14 + 1" identifier = (binary_expression "pfVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar18 + 0x18))" ( (binary_expression "iVar9 < *(int *)(iVar18 + 0x18)" identifier < (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);" (assignment_expression "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" (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 "(uVar6,uVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 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 "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar31 != iVar16)" ( (binary_expression "iVar31 != iVar16" 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 (pointer_declarator * 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 ;) (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) ;) (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 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 (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 = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 , LIT , IDENT , (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 , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (binary_expression IDENT * IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (binary_expression IDENT * IDENT) + IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (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 { (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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 + (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 (binary_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)) )))) * IDENT) + (binary_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) ) IDENT))) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) * (parenthesized_expression ( (binary_expression IDENT / IDENT) ))) ))) + IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (binary_expression IDENT * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) * 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 + (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 + 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) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000bed90(double *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000bed90(double *param_1)" (identifier "FUN_000bed90") (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  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  float *pfVar12;\n  int iVar13;\n  float *pfVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  float fVar20;\n  float fVar21;\n  float fVar22;\n  float fVar23;\n  float fVar24;\n  float fVar25;\n  ulonglong uVar26;\n  double dVar27;\n  ulonglong uVar28;\n  ulonglong uVar29;\n  double dVar30;\n  int iVar31;\n  \n  iVar18 = *(int *)(param_1 + 1);\n  iVar16 = *(int *)(iVar18 + 0x1c);\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar2 = PTR_s_ltiple_images_003f98e8;\n  puVar1 = PTR_UINT_003f98e4;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar31 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar31 * iVar4 + iVar16;\n  iVar31 = iVar31 + iVar16;\n  if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\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 "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (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 "float *pfVar12;" (primitive_type "float") (pointer_declarator "*pfVar12" (* "*") (identifier "pfVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "float *pfVar14;" (primitive_type "float") (pointer_declarator "*pfVar14" (* "*") (identifier "pfVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "float fVar20;" (primitive_type "float") (identifier "fVar20") (; ";")) (declaration "float fVar21;" (primitive_type "float") (identifier "fVar21") (; ";")) (declaration "float fVar22;" (primitive_type "float") (identifier "fVar22") (; ";")) (declaration "float fVar23;" (primitive_type "float") (identifier "fVar23") (; ";")) (declaration "float fVar24;" (primitive_type "float") (identifier "fVar24") (; ";")) (declaration "float fVar25;" (primitive_type "float") (identifier "fVar25") (; ";")) (declaration "ulonglong uVar26;" (type_identifier "ulonglong") (identifier "uVar26") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "ulonglong uVar28;" (type_identifier "ulonglong") (identifier "uVar28") (; ";")) (declaration "ulonglong uVar29;" (type_identifier "ulonglong") (identifier "uVar29") (; ";")) (declaration "double dVar30;" (primitive_type "double") (identifier "dVar30") (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 1);" (assignment_expression "iVar18 = *(int *)(param_1 + 1)" (identifier "iVar18") (= "=") (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 "iVar16 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar18 + 0x1c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar18 + 0x1c)" (* "*") (cast_expression "(int *)(iVar18 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (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 "puVar2 = PTR_s_ltiple_images_003f98e8;" (assignment_expression "puVar2 = PTR_s_ltiple_images_003f98e8" (identifier "puVar2") (= "=") (identifier "PTR_s_ltiple_images_003f98e8")) (; ";")) (expression_statement "puVar1 = PTR_UINT_003f98e4;" (assignment_expression "puVar1 = PTR_UINT_003f98e4" (identifier "puVar1") (= "=") (identifier "PTR_UINT_003f98e4")) (; ";")) (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 "iVar31 = iVar16 / iVar3;" (assignment_expression "iVar31 = iVar16 / iVar3" (identifier "iVar31") (= "=") (binary_expression "iVar16 / iVar3" (identifier "iVar16") (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar16 = iVar16 % iVar3;" (assignment_expression "iVar16 = iVar16 % iVar3" (identifier "iVar16") (= "=") (binary_expression "iVar16 % iVar3" (identifier "iVar16") (% "%") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < iVar16) {\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar16)" (( "(") (binary_expression "iVar4 < iVar16" (identifier "iVar4") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n    iVar31 = iVar31 + 1;\n    iVar16 = 0;\n  }" ({ "{") (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" (identifier "iVar31") (= "=") (binary_expression "iVar31 + 1" (identifier "iVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar16 = iVar31 * iVar4 + iVar16;" (assignment_expression "iVar16 = iVar31 * iVar4 + iVar16" (identifier "iVar16") (= "=") (binary_expression "iVar31 * iVar4 + iVar16" (binary_expression "iVar31 * iVar4" (identifier "iVar31") (* "*") (identifier "iVar4")) (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "iVar31 = iVar31 + iVar16;" (assignment_expression "iVar31 = iVar31 + iVar16" (identifier "iVar31") (= "=") (binary_expression "iVar31 + iVar16" (identifier "iVar31") (+ "+") (identifier "iVar16"))) (; ";")) (if_statement "if (iVar16 < iVar31) {\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" (if "if") (parenthesized_expression "(iVar16 < iVar31)" (( "(") (binary_expression "iVar16 < iVar31" (identifier "iVar16") (< "<") (identifier "iVar31")) () ")")) (compound_statement "{\n    iVar15 = *(int *)(param_1 + 6);\n    iVar3 = *(int *)((int)param_1 + 0x2c);\n    iVar19 = *(int *)((int)param_1 + 0x24);\n    uVar29 = (ulonglong)*(uint *)(param_1 + 4);\n    iVar4 = *(int *)((int)param_1 + 0x1c);\n    iVar5 = *(int *)(param_1 + 3);\n    uVar6 = *(undefined4 *)((int)param_1 + 0x14);\n    uVar7 = *(undefined4 *)(param_1 + 2);\n    uVar8 = *(undefined4 *)((int)param_1 + 0xc);\n    dVar30 = *param_1;\n    iVar17 = iVar15 * 2;\n    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);\n    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);\n    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);\n    do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);\n  }" ({ "{") (expression_statement "iVar15 = *(int *)(param_1 + 6);" (assignment_expression "iVar15 = *(int *)(param_1 + 6)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(param_1 + 6)" (* "*") (cast_expression "(int *)(param_1 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)((int)param_1 + 0x2c);" (assignment_expression "iVar3 = *(int *)((int)param_1 + 0x2c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)((int)param_1 + 0x2c)" (* "*") (cast_expression "(int *)((int)param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "iVar19 = *(int *)((int)param_1 + 0x24);" (assignment_expression "iVar19 = *(int *)((int)param_1 + 0x24)" (identifier "iVar19") (= "=") (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 "uVar29 = (ulonglong)*(uint *)(param_1 + 4);" (assignment_expression "uVar29 = (ulonglong)*(uint *)(param_1 + 4)" (identifier "uVar29") (= "=") (binary_expression "(ulonglong)*(uint *)(param_1 + 4)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)((int)param_1 + 0x1c);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0x1c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)((int)param_1 + 0x1c)" (* "*") (cast_expression "(int *)((int)param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "iVar5 = *(int *)(param_1 + 3);" (assignment_expression "iVar5 = *(int *)(param_1 + 3)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)((int)param_1 + 0x14);" (assignment_expression "uVar6 = *(undefined4 *)((int)param_1 + 0x14)" (identifier "uVar6") (= "=") (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 "uVar7 = *(undefined4 *)(param_1 + 2);" (assignment_expression "uVar7 = *(undefined4 *)(param_1 + 2)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 2)" (* "*") (cast_expression "(undefined4 *)(param_1 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)((int)param_1 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)((int)param_1 + 0xc)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)((int)param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "dVar30 = *param_1;" (assignment_expression "dVar30 = *param_1" (identifier "dVar30") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar17 = iVar15 * 2;" (assignment_expression "iVar17 = iVar15 * 2" (identifier "iVar17") (= "=") (binary_expression "iVar15 * 2" (identifier "iVar15") (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);" (assignment_expression "uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" (identifier "uVar26") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_UINT_003f98e4 + -0x2a24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a24)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a24" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a24")) () ")"))))) (; ";")) (expression_statement "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);" (assignment_expression "uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (identifier "uVar28") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7edc)" (( "(") (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7edc" (identifier "PTR_s_ltiple_images_003f98e8") (+ "+") (number_literal "-0x7edc")) () ")"))))) (; ";")) (expression_statement "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a58)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4a58" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4a58")) () ")"))))) (; ";")) (do_statement "do {\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    } while (iVar31 != iVar16);" (do "do") (compound_statement "{\n      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n      if (*(int *)(param_1 + 5) != 0) {\n        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }\n      iVar16 = iVar16 + 1;\n    }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)()" (identifier "iVar9") (= "=") (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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\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        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);\n        if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003fa674)\n                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (( "(") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (identifier "iVar16") (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);" (assignment_expression "iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (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 "(uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8)" (( "(") (identifier "uVar6") (, ",") (number_literal "0") (, ",") (identifier "iVar16") (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if ((iVar10 == 0) || (iVar11 == 0)) {\n          *(undefined4 *)(param_1 + 5) = 0;\n        }\n        else {\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" (if "if") (parenthesized_expression "((iVar10 == 0) || (iVar11 == 0))" (( "(") (binary_expression "(iVar10 == 0) || (iVar11 == 0)" (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (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          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" (else "else") (compound_statement "{\n          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);\n          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;\n          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);\n          if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }\n          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);\n          if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }\n        }" ({ "{") (expression_statement "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);" (assignment_expression "pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4)" (identifier "pfVar14") (= "=") (cast_expression "(float *)(iVar4 + iVar3 * iVar9 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar3 * iVar9 * 4)" (( "(") (binary_expression "iVar4 + iVar3 * iVar9 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar3 * iVar9 * 4" (binary_expression "iVar3 * iVar9" (identifier "iVar3") (* "*") (identifier "iVar9")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;" (assignment_expression "iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4" (identifier "iVar9") (= "=") (binary_expression "(iVar17 + *(int *)(iVar18 + 0x18)) * 4" (parenthesized_expression "(iVar17 + *(int *)(iVar18 + 0x18))" (( "(") (binary_expression "iVar17 + *(int *)(iVar18 + 0x18)" (identifier "iVar17") (+ "+") (pointer_expression "*(int *)(iVar18 + 0x18)" (* "*") (cast_expression "(int *)(iVar18 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);" (call_expression "(*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_003fa370)" (( "(") (pointer_expression "*(code *)PTR_memcpy_003fa370" (* "*") (cast_expression "(code *)PTR_memcpy_003fa370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_003fa370"))) () ")")) (argument_list "(pfVar14,iVar16 * iVar9 + iVar5,iVar9)" (( "(") (identifier "pfVar14") (, ",") (binary_expression "iVar16 * iVar9 + iVar5" (binary_expression "iVar16 * iVar9" (identifier "iVar16") (* "*") (identifier "iVar9")) (+ "+") (identifier "iVar5")) (, ",") (identifier "iVar9") () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar18 + 0x18)) {\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar18 + 0x18))" (( "(") (binary_expression "0 < *(int *)(iVar18 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar18 + 0x18)" (* "*") (cast_expression "(int *)(iVar18 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n            iVar9 = 0;\n            fVar22 = *(float *)(puVar1 + -0x2a24);\n            fVar24 = *(float *)(puVar2 + -0x7ee0);\n            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);\n            do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));\n          }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar22 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar22 = *(float *)(puVar1 + -0x2a24)" (identifier "fVar22") (= "=") (pointer_expression "*(float *)(puVar1 + -0x2a24)" (* "*") (cast_expression "(float *)(puVar1 + -0x2a24)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x2a24)" (( "(") (binary_expression "puVar1 + -0x2a24" (identifier "puVar1") (+ "+") (number_literal "-0x2a24")) () ")"))))) (; ";")) (expression_statement "fVar24 = *(float *)(puVar2 + -0x7ee0);" (assignment_expression "fVar24 = *(float *)(puVar2 + -0x7ee0)" (identifier "fVar24") (= "=") (pointer_expression "*(float *)(puVar2 + -0x7ee0)" (* "*") (cast_expression "(float *)(puVar2 + -0x7ee0)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x7ee0)" (( "(") (binary_expression "puVar2 + -0x7ee0" (identifier "puVar2") (+ "+") (number_literal "-0x7ee0")) () ")"))))) (; ";")) (expression_statement "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);" (assignment_expression "fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" (identifier "fVar23") (= "=") (pointer_expression "*(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" (* "*") (cast_expression "(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ltiple_images_003f98e8 + -0x7ed8)" (( "(") (binary_expression "PTR_s_ltiple_images_003f98e8 + -0x7ed8" (identifier "PTR_s_ltiple_images_003f98e8") (+ "+") (number_literal "-0x7ed8")) () ")"))))) (; ";")) (do_statement "do {\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            } while (iVar9 < *(int *)(iVar18 + 0x18));" (do "do") (compound_statement "{\n              if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }\n              iVar13 = iVar15 + 1;\n              if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }\n              iVar13 = *(int *)(iVar18 + 0x2d0);\n              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);\n              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;\n              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;\n              if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }\n              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }\n              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;\n              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;\n              iVar9 = iVar9 + 1;\n              pfVar14 = pfVar14 + 1;\n            }" ({ "{") (if_statement "if (iVar15 < 1) {\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }\n              else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" (if "if") (parenthesized_expression "(iVar15 < 1)" (( "(") (binary_expression "iVar15 < 1" (identifier "iVar15") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n              }" ({ "{") (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" (identifier "fVar21") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" (identifier "fVar20") (= "=") (pointer_expression "*(float *)(puVar1 + -0x2a24)" (* "*") (cast_expression "(float *)(puVar1 + -0x2a24)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x2a24)" (( "(") (binary_expression "puVar1 + -0x2a24" (identifier "puVar1") (+ "+") (number_literal "-0x2a24")) () ")"))))) (; ";")) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" (identifier "pfVar12") (= "=") (identifier "pfVar14")) (; ";")) (} "}")) (else_clause "else {\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" (else "else") (compound_statement "{\n                iVar13 = 0;\n                fVar21 = 0.0;\n                fVar20 = *(float *)(puVar1 + -0x2a24);\n                pfVar12 = pfVar14;\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);\n                pfVar12 = pfVar14 + iVar15;\n              }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar21 = 0.0;" (assignment_expression "fVar21 = 0.0" (identifier "fVar21") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar20 = *(float *)(puVar1 + -0x2a24);" (assignment_expression "fVar20 = *(float *)(puVar1 + -0x2a24)" (identifier "fVar20") (= "=") (pointer_expression "*(float *)(puVar1 + -0x2a24)" (* "*") (cast_expression "(float *)(puVar1 + -0x2a24)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x2a24)" (( "(") (binary_expression "puVar1 + -0x2a24" (identifier "puVar1") (+ "+") (number_literal "-0x2a24")) () ")"))))) (; ";")) (expression_statement "pfVar12 = pfVar14;" (assignment_expression "pfVar12 = pfVar14" (identifier "pfVar12") (= "=") (identifier "pfVar14")) (; ";")) (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar15 != iVar13);" (do "do") (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 + (float)uVar26;\n                  pfVar12 = pfVar12 + 1;\n                }" ({ "{") (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" (identifier "fVar21") (= "=") (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" (identifier "fVar20") (* "*") (pointer_expression "*pfVar12" (* "*") (identifier "pfVar12"))) (+ "+") (identifier "fVar21"))) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fVar20 = fVar20 + (float)uVar26;" (assignment_expression "fVar20 = fVar20 + (float)uVar26" (identifier "fVar20") (= "=") (binary_expression "fVar20 + (float)uVar26" (identifier "fVar20") (+ "+") (cast_expression "(float)uVar26" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar26")))) (; ";")) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" (identifier "pfVar12") (= "=") (binary_expression "pfVar12 + 1" (identifier "pfVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar15 != iVar13)" (( "(") (binary_expression "iVar15 != iVar13" (identifier "iVar15") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (expression_statement "pfVar12 = pfVar14 + iVar15;" (assignment_expression "pfVar12 = pfVar14 + iVar15" (identifier "pfVar12") (= "=") (binary_expression "pfVar14 + iVar15" (identifier "pfVar14") (+ "+") (identifier "iVar15"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar15 + 1;" (assignment_expression "iVar13 = iVar15 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar13 < iVar17) {\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" (if "if") (parenthesized_expression "(iVar13 < iVar17)" (( "(") (binary_expression "iVar13 < iVar17" (identifier "iVar13") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n                do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);\n              }" ({ "{") (do_statement "do {\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                } while (iVar17 != iVar13);" (do "do") (compound_statement "{\n                  fVar21 = fVar20 * *pfVar12 + fVar21;\n                  iVar13 = iVar13 + 1;\n                  fVar20 = fVar20 - fVar22;\n                  pfVar12 = pfVar12 + 1;\n                }" ({ "{") (expression_statement "fVar21 = fVar20 * *pfVar12 + fVar21;" (assignment_expression "fVar21 = fVar20 * *pfVar12 + fVar21" (identifier "fVar21") (= "=") (binary_expression "fVar20 * *pfVar12 + fVar21" (binary_expression "fVar20 * *pfVar12" (identifier "fVar20") (* "*") (pointer_expression "*pfVar12" (* "*") (identifier "pfVar12"))) (+ "+") (identifier "fVar21"))) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fVar20 = fVar20 - fVar22;" (assignment_expression "fVar20 = fVar20 - fVar22" (identifier "fVar20") (= "=") (binary_expression "fVar20 - fVar22" (identifier "fVar20") (- "-") (identifier "fVar22"))) (; ";")) (expression_statement "pfVar12 = pfVar12 + 1;" (assignment_expression "pfVar12 = pfVar12 + 1" (identifier "pfVar12") (= "=") (binary_expression "pfVar12 + 1" (identifier "pfVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != iVar13)" (( "(") (binary_expression "iVar17 != iVar13" (identifier "iVar17") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(iVar18 + 0x2d0);" (assignment_expression "iVar13 = *(int *)(iVar18 + 0x2d0)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar18 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar18 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d0)" (( "(") (binary_expression "iVar18 + 0x2d0" (identifier "iVar18") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);" (assignment_expression "fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" (identifier "fVar25") (= "=") (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24;" (assignment_expression "fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" (identifier "fVar20") (= "=") (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +\n                       fVar25 * fVar24" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +\n                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x20) * 4" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (* "*") (identifier "fVar23")) (+ "+") (binary_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28" (pointer_expression "*(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x14) * 4" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (* "*") (cast_expression "(float)uVar28" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar28")))) (+ "+") (binary_expression "fVar25 * fVar24" (identifier "fVar25") (* "*") (identifier "fVar24")))) (; ";")) (expression_statement "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20;" (assignment_expression "fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" (identifier "fVar20") (= "=") (binary_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20) / fVar20" (parenthesized_expression "((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20)" (( "(") (binary_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +\n                       fVar20" (cast_expression "(float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27))" (( "(") (binary_expression "(double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)" (cast_expression "(double)(fVar20 - fVar21 / (float)uVar29)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(fVar20 - fVar21 / (float)uVar29)" (( "(") (binary_expression "fVar20 - fVar21 / (float)uVar29" (identifier "fVar20") (- "-") (binary_expression "fVar21 / (float)uVar29" (identifier "fVar21") (/ "/") (cast_expression "(float)uVar29" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar29")))) () ")"))) (* "*") (parenthesized_expression "(dVar30 / dVar27)" (( "(") (binary_expression "dVar30 / dVar27" (identifier "dVar30") (/ "/") (identifier "dVar27")) () ")"))) () ")"))) (+ "+") (identifier "fVar20")) () ")")) (/ "/") (identifier "fVar20"))) (; ";")) (if_statement "if ((*(uint *)(iVar13 + 4) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" (if "if") (parenthesized_expression "((*(uint *)(iVar13 + 4) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(iVar13 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 4) & 2)" (( "(") (binary_expression "*(uint *)(iVar13 + 4) & 2" (pointer_expression "*(uint *)(iVar13 + 4)" (* "*") (cast_expression "(uint *)(iVar13 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;\n              }" ({ "{") (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" (identifier "iVar11") (+ "+") (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(iVar19 + 0x2d0) + 8" (pointer_expression "*(int *)(iVar19 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar19 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x2d0)" (( "(") (binary_expression "iVar19 + 0x2d0" (identifier "iVar19") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "fVar25 * fVar20" (identifier "fVar25") (* "*") (identifier "fVar20"))) (; ";")) (} "}"))) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x10)" (( "(") (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x10" (pointer_expression "*(int *)(iVar18 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar18 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d0)" (( "(") (binary_expression "iVar18 + 0x2d0" (identifier "iVar18") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;\n              }" ({ "{") (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" (identifier "iVar11") (+ "+") (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar19 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar19 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x2d0)" (( "(") (binary_expression "iVar19 + 0x2d0" (identifier "iVar19") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x14" (pointer_expression "*(int *)(iVar18 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar18 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d0)" (( "(") (binary_expression "iVar18 + 0x2d0" (identifier "iVar18") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (* "*") (identifier "fVar20"))) (; ";")) (} "}"))) (if_statement "if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" (* "*") (cast_expression "(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x1c" (pointer_expression "*(int *)(iVar18 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar18 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d0)" (( "(") (binary_expression "iVar18 + 0x2d0" (identifier "iVar18") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;\n              }" ({ "{") (expression_statement "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;" (assignment_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =\n                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" (identifier "iVar11") (+ "+") (binary_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(iVar19 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar19 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar19 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x2d0)" (( "(") (binary_expression "iVar19 + 0x2d0" (identifier "iVar19") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20" (pointer_expression "*(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(iVar18 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(iVar18 + 0x2d0) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar18 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d0)" (( "(") (binary_expression "iVar18 + 0x2d0" (identifier "iVar18") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (* "*") (identifier "fVar20"))) (; ";")) (} "}"))) (expression_statement "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;" (assignment_expression "iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4" (identifier "iVar10") (= "=") (binary_expression "iVar10 + *(int *)(iVar18 + 0x2c0) * 4" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar18 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar18 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar18 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2c0)" (( "(") (binary_expression "iVar18 + 0x2c0" (identifier "iVar18") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;" (assignment_expression "iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4" (identifier "iVar11") (= "=") (binary_expression "iVar11 + *(int *)(iVar19 + 0x2c0) * 4" (identifier "iVar11") (+ "+") (binary_expression "*(int *)(iVar19 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar19 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar19 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x2c0)" (( "(") (binary_expression "iVar19 + 0x2c0" (identifier "iVar19") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar14 = pfVar14 + 1;" (assignment_expression "pfVar14 = pfVar14 + 1" (identifier "pfVar14") (= "=") (binary_expression "pfVar14 + 1" (identifier "pfVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < *(int *)(iVar18 + 0x18))" (( "(") (binary_expression "iVar9 < *(int *)(iVar18 + 0x18)" (identifier "iVar9") (< "<") (pointer_expression "*(int *)(iVar18 + 0x18)" (* "*") (cast_expression "(int *)(iVar18 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);" (assignment_expression "iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8)" (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 "(uVar6,uVar8)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)(param_1 + 5) = 0;\n          }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (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 "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar31 != iVar16)" (( "(") (binary_expression "iVar31 != iVar16" (identifier "iVar31") (!= "!=") (identifier "iVar16")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void LocalContrastImage._omp_fn.6(anon_struct_56_12_26f1cbcd * param_0)
    */

void __thiscall function_1(void *this)

{
  type_1 *var_16;
  type_1 *var_17;
  int var_2;
  int var_5;
  int var_15;
  type_2 uVar6;
  type_2 uVar7;
  type_2 uVar8;
  int var_13;
  int var_11;
  int var_12;
  float *var_21;
  int var_20;
  float *var_22;
  int var_7;
  int var_4;
  int var_14;
  int var_1;
  int var_29;
  float var_18;
  float var_19;
  float var_23;
  float var_24;
  float var_26;
  float var_25;
  type_3 uVar26;
  double var_28;
  type_3 uVar28;
  type_3 uVar29;
  double var_27;
  int var_6;
  
  var_1 = *(int *)((int)this + 8);
  var_4 = *(int *)(var_1 + 0x1c);
  var_2 = (*(type_4 *)PTR_omp_get_num_threads_003fa924)();
  var_5 = (*(type_4 *)PTR_omp_get_thread_num_003fa520)();
  var_17 = var_9;
  var_16 = var_8;
  if (var_2 == 0) {
    var_3(7);
  }
  var_6 = var_4 / var_2;
  var_4 = var_4 % var_2;
  if (var_5 < var_4) {
    var_6 = var_6 + 1;
    var_4 = 0;
  }
  var_4 = var_6 * var_5 + var_4;
  var_6 = var_6 + var_4;
  if (var_4 < var_6) {
    var_7 = *(int *)((int)this + 0x30);
    var_2 = *(int *)((int)this + 0x2c);
    var_29 = *(int *)((int)this + 0x24);
    uVar29 = (type_3)*(type_5 *)((int)this + 0x20);
    var_5 = *(int *)((int)this + 0x1c);
    var_15 = *(int *)((int)this + 0x18);
    uVar6 = *(type_2 *)((int)this + 0x14);
    uVar7 = *(type_2 *)((int)this + 0x10);
    uVar8 = *(type_2 *)((int)this + 0xc);
                    /* WARNING: Load size is inaccurate */
    var_27 = *this;
    var_14 = var_7 * 2;
    uVar26 = (type_3)*(type_5 *)(var_8 + -0x2a24);
    uVar28 = (type_3)*(type_5 *)(var_9 + -0x7edc);
    var_28 = *(double *)(var_10 + 0x4a58);
    do {
      var_13 = (*(type_4 *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)((int)this + 0x28) != 0) {
        var_11 = (*(type_4 *)PTR_GetCacheViewVirtualPixels_003fa674)
                           (uVar7,0,var_4,*(type_2 *)(var_1 + 0x18),1,uVar8);
        var_12 = (*(type_4 *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar6,0,var_4,*(type_2 *)(var_1 + 0x18),1,uVar8);
        if ((var_11 == 0) || (var_12 == 0)) {
          *(type_2 *)((int)this + 0x28) = 0;
        }
        else {
          var_22 = (float *)(var_5 + var_2 * var_13 * 4);
          var_13 = (var_14 + *(int *)(var_1 + 0x18)) * 4;
          (*(type_4 *)PTR_memcpy_003fa370)(var_22,var_4 * var_13 + var_15,var_13);
          if (0 < *(int *)(var_1 + 0x18)) {
            var_13 = 0;
            var_23 = *(float *)(var_16 + -0x2a24);
            var_26 = *(float *)(var_17 + -0x7ee0);
            var_24 = *(float *)(var_9 + -0x7ed8);
            do {
              if (var_7 < 1) {
                var_19 = 0.0;
                var_18 = *(float *)(var_16 + -0x2a24);
                var_21 = var_22;
              }
              else {
                var_20 = 0;
                var_19 = 0.0;
                var_18 = *(float *)(var_16 + -0x2a24);
                var_21 = var_22;
                do {
                  var_19 = var_18 * *var_21 + var_19;
                  var_20 = var_20 + 1;
                  var_18 = var_18 + (float)uVar26;
                  var_21 = var_21 + 1;
                } while (var_7 != var_20);
                var_21 = var_22 + var_7;
              }
              var_20 = var_7 + 1;
              if (var_20 < var_14) {
                do {
                  var_19 = var_18 * *var_21 + var_19;
                  var_20 = var_20 + 1;
                  var_18 = var_18 - var_23;
                  var_21 = var_21 + 1;
                } while (var_14 != var_20);
              }
              var_20 = *(int *)(var_1 + 0x2d0);
              var_25 = *(float *)(var_11 + *(int *)(var_20 + 8) * 4);
              var_18 = *(float *)(var_11 + *(int *)(var_20 + 0x20) * 4) * var_24 +
                       *(float *)(var_11 + *(int *)(var_20 + 0x14) * 4) * (float)uVar28 +
                       var_25 * var_26;
              var_18 = ((float)((double)(var_18 - var_19 / (float)uVar29) * (var_27 / var_28)) +
                       var_18) / var_18;
              if ((*(type_5 *)(var_20 + 4) & 2) != 0) {
                *(float *)(var_12 + *(int *)(*(int *)(var_29 + 0x2d0) + 8) * 4) = var_25 * var_18;
              }
              if ((*(type_5 *)(*(int *)(var_1 + 0x2d0) + 0x10) & 2) != 0) {
                *(float *)(var_12 + *(int *)(*(int *)(var_29 + 0x2d0) + 0x14) * 4) =
                     *(float *)(var_11 + *(int *)(*(int *)(var_1 + 0x2d0) + 0x14) * 4) * var_18;
              }
              if ((*(type_5 *)(*(int *)(var_1 + 0x2d0) + 0x1c) & 2) != 0) {
                *(float *)(var_12 + *(int *)(*(int *)(var_29 + 0x2d0) + 0x20) * 4) =
                     *(float *)(var_11 + *(int *)(*(int *)(var_1 + 0x2d0) + 0x20) * 4) * var_18;
              }
              var_11 = var_11 + *(int *)(var_1 + 0x2c0) * 4;
              var_12 = var_12 + *(int *)(var_29 + 0x2c0) * 4;
              var_13 = var_13 + 1;
              var_22 = var_22 + 1;
            } while (var_13 < *(int *)(var_1 + 0x18));
          }
          var_13 = (*(type_4 *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);
          if (var_13 == 0) {
            *(type_2 *)((int)this + 0x28) = 0;
          }
        }
      }
      var_4 = var_4 + 1;
    } while (var_6 != var_4);
  }
  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: (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: (pointer_declarator 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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (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: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (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) (number_literal) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (identifier))))) (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) (number_literal) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (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 (identifier) (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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 (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (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: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (identifier)) 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: (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: (identifier)))) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) right: (identifier))) right: (identifier)))) (if_statement condition: (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))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) right: (identifier)))))) (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) 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: (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: (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)))))))))) (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;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  float *pfVar12;
  int iVar13;
  float *pfVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  float fVar20;
  float fVar21;
  float fVar22;
  float fVar23;
  float fVar24;
  float fVar25;
  ulonglong uVar26;
  double dVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  double dVar30;
  int iVar31;
  
  iVar18 = *(int *)(param_1 + 1);
  iVar16 = *(int *)(iVar18 + 0x1c);
  iVar3 = (*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar2 = PTR_s_ltiple_images_003f98e8;
  puVar1 = PTR_UINT_003f98e4;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar31 = iVar16 / iVar3;
  iVar16 = iVar16 % iVar3;
  if (iVar4 < iVar16) {
    iVar31 = iVar31 + 1;
    iVar16 = 0;
  }
  iVar16 = iVar31 * iVar4 + iVar16;
  iVar31 = iVar31 + iVar16;
  if (iVar16 < iVar31) {
    iVar15 = *(int *)(param_1 + 6);
    iVar3 = *(int *)((int)param_1 + 0x2c);
    iVar19 = *(int *)((int)param_1 + 0x24);
    uVar29 = (ulonglong)*(uint *)(param_1 + 4);
    iVar4 = *(int *)((int)param_1 + 0x1c);
    iVar5 = *(int *)(param_1 + 3);
    uVar6 = *(undefined4 *)((int)param_1 + 0x14);
    uVar7 = *(undefined4 *)(param_1 + 2);
    uVar8 = *(undefined4 *)((int)param_1 + 0xc);
    dVar30 = *param_1;
    iVar17 = iVar15 * 2;
    uVar26 = (ulonglong)*(uint *)(PTR_UINT_003f98e4 + -0x2a24);
    uVar28 = (ulonglong)*(uint *)(PTR_s_ltiple_images_003f98e8 + -0x7edc);
    dVar27 = *(double *)(PTR_LAB_003f98e0 + 0x4a58);
    do {
      iVar9 = (*(code *)PTR_omp_get_thread_num_003fa520)();
      if (*(int *)(param_1 + 5) != 0) {
        iVar10 = (*(code *)PTR_GetCacheViewVirtualPixels_003fa674)
                           (uVar7,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);
        iVar11 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                           (uVar6,0,iVar16,*(undefined4 *)(iVar18 + 0x18),1,uVar8);
        if ((iVar10 == 0) || (iVar11 == 0)) {
          *(undefined4 *)(param_1 + 5) = 0;
        }
        else {
          pfVar14 = (float *)(iVar4 + iVar3 * iVar9 * 4);
          iVar9 = (iVar17 + *(int *)(iVar18 + 0x18)) * 4;
          (*(code *)PTR_memcpy_003fa370)(pfVar14,iVar16 * iVar9 + iVar5,iVar9);
          if (0 < *(int *)(iVar18 + 0x18)) {
            iVar9 = 0;
            fVar22 = *(float *)(puVar1 + -0x2a24);
            fVar24 = *(float *)(puVar2 + -0x7ee0);
            fVar23 = *(float *)(PTR_s_ltiple_images_003f98e8 + -0x7ed8);
            do {
              if (iVar15 < 1) {
                fVar21 = 0.0;
                fVar20 = *(float *)(puVar1 + -0x2a24);
                pfVar12 = pfVar14;
              }
              else {
                iVar13 = 0;
                fVar21 = 0.0;
                fVar20 = *(float *)(puVar1 + -0x2a24);
                pfVar12 = pfVar14;
                do {
                  fVar21 = fVar20 * *pfVar12 + fVar21;
                  iVar13 = iVar13 + 1;
                  fVar20 = fVar20 + (float)uVar26;
                  pfVar12 = pfVar12 + 1;
                } while (iVar15 != iVar13);
                pfVar12 = pfVar14 + iVar15;
              }
              iVar13 = iVar15 + 1;
              if (iVar13 < iVar17) {
                do {
                  fVar21 = fVar20 * *pfVar12 + fVar21;
                  iVar13 = iVar13 + 1;
                  fVar20 = fVar20 - fVar22;
                  pfVar12 = pfVar12 + 1;
                } while (iVar17 != iVar13);
              }
              iVar13 = *(int *)(iVar18 + 0x2d0);
              fVar25 = *(float *)(iVar10 + *(int *)(iVar13 + 8) * 4);
              fVar20 = *(float *)(iVar10 + *(int *)(iVar13 + 0x20) * 4) * fVar23 +
                       *(float *)(iVar10 + *(int *)(iVar13 + 0x14) * 4) * (float)uVar28 +
                       fVar25 * fVar24;
              fVar20 = ((float)((double)(fVar20 - fVar21 / (float)uVar29) * (dVar30 / dVar27)) +
                       fVar20) / fVar20;
              if ((*(uint *)(iVar13 + 4) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 8) * 4) = fVar25 * fVar20;
              }
              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x10) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x14) * 4) =
                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x14) * 4) * fVar20;
              }
              if ((*(uint *)(*(int *)(iVar18 + 0x2d0) + 0x1c) & 2) != 0) {
                *(float *)(iVar11 + *(int *)(*(int *)(iVar19 + 0x2d0) + 0x20) * 4) =
                     *(float *)(iVar10 + *(int *)(*(int *)(iVar18 + 0x2d0) + 0x20) * 4) * fVar20;
              }
              iVar10 = iVar10 + *(int *)(iVar18 + 0x2c0) * 4;
              iVar11 = iVar11 + *(int *)(iVar19 + 0x2c0) * 4;
              iVar9 = iVar9 + 1;
              pfVar14 = pfVar14 + 1;
            } while (iVar9 < *(int *)(iVar18 + 0x18));
          }
          iVar9 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,uVar8);
          if (iVar9 == 0) {
            *(undefined4 *)(param_1 + 5) = 0;
          }
        }
      }
      iVar16 = iVar16 + 1;
    } while (iVar31 != iVar16);
  }
  return;
}

