
/* DWARF original prototype: void SetImageDepth._omp_fn.4(anon_struct_24_5_83ffb101 * param_0) */

void __thiscall SetImageDepth__omp_fn_4(void *this)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  float *pfVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  float *pfVar13;
  int *piVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  double dVar19;
  double dVar20;
  double dVar21;
  double dVar22;
  undefined8 uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  double dVar26;
  float fVar27;
  int iVar28;
  undefined8 uVar29;
  int local_90;
  
  iVar8 = *(int *)((int)this + 8);
  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (local_90 == 0) {
    trap(7);
  }
  iVar28 = *(int *)(iVar8 + 0x1c) / local_90;
  local_90 = *(int *)(iVar8 + 0x1c) % local_90;
  if (iVar2 < local_90) {
    iVar28 = iVar28 + 1;
    local_90 = 0;
  }
  local_90 = iVar28 * iVar2 + local_90;
  iVar28 = iVar28 + local_90;
  if (local_90 < iVar28) {
                    /* WARNING: Load size is inaccurate */
    uVar10 = *this;
    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);
    uVar11 = *(uint *)((int)this + 4);
    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);
    uVar3 = *(undefined4 *)((int)this + 0x10);
    uVar4 = *(undefined4 *)((int)this + 0xc);
    do {
      if (*(int *)((int)this + 0x14) != 0) {
        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);
        puVar1 = PTR_LAB_003a88e0;
        if (pfVar5 != (float *)0x0) {
          iVar2 = *(int *)(iVar8 + 0x18);
          if (0 < iVar2) {
            iVar7 = *(int *)(iVar8 + 0x2c0);
            iVar12 = 0;
            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
            do {
              if (0 < iVar7) {
                uVar23 = 0;
                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);
                piVar9 = *(int **)(iVar8 + 0x2d0);
                pfVar13 = pfVar5;
                piVar14 = piVar9;
                do {
                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {
                    fVar27 = *pfVar13;
                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);
                    if ((float)uVar23 <= fVar27) {
                      if (fVar27 < (float)uVar25) {
                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;
                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);
                      }
                      else {
                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);
                      }
                      if (dVar26 <= dVar22) {
                        uVar29 = 0xffffffffffffffff;
                      }
                      else {
                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);
                      }
                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);
                      fVar27 = (float)uVar24;
                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {
                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);
                        goto joined_r0x0003e958;
                      }
                    }
                    else {
LAB_0003e980:
                      dVar22 = 0.0;
joined_r0x0003e958:
                      dVar21 = dVar16;
                      if (dVar15 <= dVar20) {
                        dVar21 = dVar17 / dVar20;
                      }
                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));
                    }
                    *pfVar13 = fVar27;
                  }
                  piVar14 = piVar14 + 3;
                  pfVar13 = pfVar13 + 1;
                } while (piVar14 != piVar9 + iVar7 * 3);
              }
              iVar12 = iVar12 + 1;
              pfVar5 = pfVar5 + iVar7;
            } while (iVar12 != iVar2);
          }
          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);
          if (iVar2 != 0) goto LAB_0003e8d8;
        }
        *(undefined4 *)((int)this + 0x14) = 0;
      }
LAB_0003e8d8:
      local_90 = local_90 + 1;
    } while (iVar28 != local_90);
  }
  return;
}



void FUN_0003e614(uint *param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  float *pfVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  int *piVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  float *pfVar13;
  int *piVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  double dVar19;
  double dVar20;
  double dVar21;
  double dVar22;
  undefined8 uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  double dVar26;
  float fVar27;
  int iVar28;
  undefined8 uVar29;
  int local_90;
  
  uVar8 = param_1[2];
  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (local_90 == 0) {
    trap(7);
  }
  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;
  local_90 = *(int *)(uVar8 + 0x1c) % local_90;
  if (iVar2 < local_90) {
    iVar28 = iVar28 + 1;
    local_90 = 0;
  }
  local_90 = iVar28 * iVar2 + local_90;
  iVar28 = iVar28 + local_90;
  if (local_90 < iVar28) {
    uVar10 = *param_1;
    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);
    uVar11 = param_1[1];
    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);
    uVar3 = param_1[4];
    uVar4 = param_1[3];
    do {
      if (param_1[5] != 0) {
        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);
        puVar1 = PTR_LAB_003a88e0;
        if (pfVar5 != (float *)0x0) {
          iVar2 = *(int *)(uVar8 + 0x18);
          if (0 < iVar2) {
            iVar7 = *(int *)(uVar8 + 0x2c0);
            iVar12 = 0;
            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
            do {
              if (0 < iVar7) {
                uVar23 = 0;
                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);
                piVar9 = *(int **)(uVar8 + 0x2d0);
                pfVar13 = pfVar5;
                piVar14 = piVar9;
                do {
                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {
                    fVar27 = *pfVar13;
                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);
                    if ((float)uVar23 <= fVar27) {
                      if (fVar27 < (float)uVar25) {
                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;
                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);
                      }
                      else {
                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);
                      }
                      if (dVar26 <= dVar22) {
                        uVar29 = 0xffffffffffffffff;
                      }
                      else {
                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);
                      }
                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);
                      fVar27 = (float)uVar24;
                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {
                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);
                        goto joined_r0x0003e958;
                      }
                    }
                    else {
LAB_0003e980:
                      dVar22 = 0.0;
joined_r0x0003e958:
                      dVar21 = dVar16;
                      if (dVar15 <= dVar20) {
                        dVar21 = dVar17 / dVar20;
                      }
                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));
                    }
                    *pfVar13 = fVar27;
                  }
                  piVar14 = piVar14 + 3;
                  pfVar13 = pfVar13 + 1;
                } while (piVar14 != piVar9 + iVar7 * 3);
              }
              iVar12 = iVar12 + 1;
              pfVar5 = pfVar5 + iVar7;
            } while (iVar12 != iVar2);
          }
          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);
          if (iVar2 != 0) goto LAB_0003e8d8;
        }
        param_1[5] = 0;
      }
LAB_0003e8d8:
      local_90 = local_90 + 1;
    } while (iVar28 != local_90);
  }
  return;
}


lui gp,0x37
addiu gp,gp,0x229c
addu gp,gp,t9
addiu sp,sp,-0xc8
lw t9,-0x6fa4(gp)
sdc1 f30,0xc0(sp)
sw s0,0x70(sp)
sw gp,0x18(sp)
sw a0,0xc8(sp)
sw ra,0x94(sp)
sw s7,0x8c(sp)
sw s8,0x90(sp)
sw s6,0x88(sp)
sw s5,0x84(sp)
sw s4,0x80(sp)
sw s3,0x7c(sp)
sw s2,0x78(sp)
sw s1,0x74(sp)
lw s0,0x8(a0)
sdc1 f28,0xb8(sp)
sdc1 f26,0xb0(sp)
sw s0,0x3c(sp)
sdc1 f24,0xa8(sp)
sdc1 f22,0xa0(sp)
jalr t9
_sdc1 f20,0x98(sp)
lw gp,0x18(sp)
lw t9,-0x73a8(gp)
jalr t9
_or s7,v0,zero
lw v1,0x1c(s0)
lw gp,0x18(sp)
teq s7,zero
div v1,s7
mfhi s7
slt a0,v0,s7
beq a0,zero,0x0003e6b4
_mflo v1
addiu v1,v1,0x1
or s7,zero,zero
mul a0,v1,v0
addu v0,a0,s7
addu v1,v1,v0
sw v0,0x38(sp)
slt v0,v0,v1
beq v0,zero,0x0003e8e8
_sw v1,0x64(sp)
lw v0,0xc8(sp)
lw s2,0x0(v0)
lw v0,-0x7fd0(gp)
ldc1 f0,0x13f8(v0)
lw v0,0xc8(sp)
lw s4,0x4(v0)
lw v0,-0x7fd0(gp)
sdc1 f0,0x20(sp)
ldc1 f0,0x1a68(v0)
lw v0,0xc8(sp)
lw v0,0x10(v0)
sw v0,0x68(sp)
lw v0,0xc8(sp)
sdc1 f0,0x50(sp)
lw v0,0xc(v0)
sw v0,0x6c(sp)
lw v0,0xc8(sp)
lw v0,0x14(v0)
beq v0,zero,0x0003e8d8
_lw v0,0x38(sp)
lw s0,0x3c(sp)
or a1,zero,zero
lw v0,0x6c(sp)
lw t9,-0x7264(gp)
lw a2,0x38(sp)
lw a3,0x18(s0)
lw a0,0x68(sp)
sw v0,0x14(sp)
li v0,0x1
jalr t9
_sw v0,0x10(sp)
lw gp,0x18(sp)
beq v0,zero,0x0003e9bc
_or s5,v0,zero
lw v1,0x18(s0)
blez v1,0x0003e8bc
_sw v1,0x40(sp)
lw v1,0x2c0(s0)
or s6,zero,zero
lw a0,-0x7fd0(gp)
lw v0,-0x7fd0(gp)
sw v1,0x58(sp)
sw a0,0x60(sp)
ldc1 f0,0x1438(v0)
sll v0,v1,0x1
lw s3,-0x7fd0(gp)
lwc1 f24,0x1a50(a0)
or a0,v1,zero
sll v1,v1,0x2
addu v0,v0,a0
sw v1,0x44(sp)
lw v1,-0x7fd0(gp)
sll v0,v0,0x2
sdc1 f0,0x48(sp)
sw v0,0x5c(sp)
ldc1 f26,0x1a60(v1)
lw v1,-0x7fd0(gp)
ldc1 f0,0x1400(v1)
sdc1 f0,0x28(sp)
ldc1 f0,0x1a58(s3)
sdc1 f0,0x30(sp)
lw v0,0x58(sp)
blez v0,0x0003e8a4
_lw v0,0x60(sp)
mtc1 zero,f20
or s7,s5,zero
lwc1 f22,0x1a50(v0)
lw v0,0x3c(sp)
lw s0,0x2d0(v0)
lw v0,0x5c(sp)
or s8,s0,zero
addu s1,s0,v0
lw v1,0x0(s8)
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v0,s0,v0
lw v0,0x4(v0)
andi v0,v0,0x2
beq v0,zero,0x0003e898
_or a0,s2,zero
lwc1 f28,0x0(s7)
lw t9,-0x7f50(gp)
jalr t9
_or a1,s4,zero
lw gp,0x18(sp)
c.lt.S f28,f20
bc1t 0x0003e97c
_mov.D f30,f0
c.le.S f24,f28
bc1t 0x1,0x0003e998
_ldc1 f12,0x30(sp)
c.un.S f28,f28
bc1t 0x2,0x0003e980
_ldc1 f2,0x20(sp)
c.le.S f28,f20
bc1t 0x3,0x0003e980
_nop
cvt.d.S f12,f28
ldc1 f0,0x1a58(s3)
mul.D f12,f12,f30
div.D f12,f12,f0
c.le.D f26,f12
bc1t 0x4,0x0003e9b4
_li v0,-0x1
ldc1 f0,0x28(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
lw gp,0x18(sp)
sltu a0,s2,v0
beq a0,zero,0x0003e930
_mov.S f0,f22
swc1 f0,0x0(s7)
addiu s8,s8,0xc
bne s8,s1,0x0003e7f0
_addiu s7,s7,0x4
lw v0,0x44(sp)
addiu s6,s6,0x1
addu s5,s5,v0
lw v0,0x40(sp)
bne s6,v0,0x0003e7c8
_lw v0,0x58(sp)
lw t9,-0x73b8(gp)
lw a1,0x6c(sp)
jalr t9
_lw a0,0x68(sp)
beq v0,zero,0x0003e9bc
_lw gp,0x18(sp)
lw v0,0x38(sp)
lw v1,0x64(sp)
addiu v0,v0,0x1
bne v1,v0,0x0003e710
_sw v0,0x38(sp)
lw ra,0x94(sp)
lw s8,0x90(sp)
lw s7,0x8c(sp)
lw s6,0x88(sp)
lw s5,0x84(sp)
lw s4,0x80(sp)
lw s3,0x7c(sp)
lw s2,0x78(sp)
lw s1,0x74(sp)
lw s0,0x70(sp)
ldc1 f30,0xc0(sp)
ldc1 f28,0xb8(sp)
ldc1 f26,0xb0(sp)
ldc1 f24,0xa8(sp)
ldc1 f22,0xa0(sp)
ldc1 f20,0x98(sp)
jr ra
_addiu sp,sp,0xc8
bne v0,s2,0x0003e940
_sltu a0,s4,v1
bne a0,zero,0x0003e894
_mov.S f0,f22
lw t9,-0x7f50(gp)
or a0,v0,zero
jalr t9
_or a1,v1,zero
ldc1 f2,0x20(sp)
c.le.D f2,f30
bc1f 0x5,0x0003e990
_lw gp,0x18(sp)
ldc1 f2,0x48(sp)
div.D f2,f2,f30
ldc1 f4,0x1a58(s3)
mul.D f0,f2,f0
mul.D f0,f0,f4
b 0x0003e894
_cvt.s.D f0,f0
ldc1 f2,0x20(sp)
mtc1 zero,f0
c.le.D f2,f30
bc1t 0x5,0x0003e960
_mthc1 zero,f0
b 0x0003e968
_ldc1 f2,0x50(sp)
ldc1 f0,0x1a58(s3)
mul.D f12,f12,f30
div.D f12,f12,f0
c.le.D f26,f12
bc1f 0x4,0x0003e878
_ldc1 f0,0x28(sp)
li v0,-0x1
b 0x0003e888
_li v1,-0x1
lw v0,0xc8(sp)
b 0x0003e8d4
_sw zero,0x14(v0)
(translation_unit "void FUN_0003e614(uint *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0003e614(uint *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0003e614(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "float *pfVar5;" primitive_type (pointer_declarator "*pfVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float *pfVar13;" primitive_type (pointer_declarator "*pfVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (declaration "double dVar21;" primitive_type identifier ;) (declaration "double dVar22;" primitive_type identifier ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "ulonglong uVar24;" type_identifier identifier ;) (declaration "ulonglong uVar25;" type_identifier identifier ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "undefined8 uVar29;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (expression_statement "uVar8 = param_1[2];" (assignment_expression "uVar8 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (local_90 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 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 "iVar28 = *(int *)(uVar8 + 0x1c) / local_90;" (assignment_expression "iVar28 = *(int *)(uVar8 + 0x1c) / local_90" identifier = (binary_expression "*(int *)(uVar8 + 0x1c) / local_90" (pointer_expression "*(int *)(uVar8 + 0x1c)" * (cast_expression "(int *)(uVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x1c)" ( (binary_expression "uVar8 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "local_90 = *(int *)(uVar8 + 0x1c) % local_90;" (assignment_expression "local_90 = *(int *)(uVar8 + 0x1c) % local_90" identifier = (binary_expression "*(int *)(uVar8 + 0x1c) % local_90" (pointer_expression "*(int *)(uVar8 + 0x1c)" * (cast_expression "(int *)(uVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x1c)" ( (binary_expression "uVar8 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" if (parenthesized_expression "(iVar2 < local_90)" ( (binary_expression "iVar2 < local_90" identifier < identifier) )) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" { (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) })) (expression_statement "local_90 = iVar28 * iVar2 + local_90;" (assignment_expression "local_90 = iVar28 * iVar2 + local_90" identifier = (binary_expression "iVar28 * iVar2 + local_90" (binary_expression "iVar28 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + local_90;" (assignment_expression "iVar28 = iVar28 + local_90" identifier = (binary_expression "iVar28 + local_90" identifier + identifier)) ;) (if_statement "if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" if (parenthesized_expression "(local_90 < iVar28)" ( (binary_expression "local_90 < iVar28" identifier < identifier) )) (compound_statement "{\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_1[1];" (assignment_expression "uVar11 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a68)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a68)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a68" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = param_1[4];" (assignment_expression "uVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[3];" (assignment_expression "uVar4 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);" do (compound_statement "{\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    }" { (if_statement "if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }" if (parenthesized_expression "(param_1[5] != 0)" ( (binary_expression "param_1[5] != 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }" { (expression_statement "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);" (assignment_expression "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" identifier = (cast_expression "(float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(uVar8 + 0x18)" * (cast_expression "(undefined4 *)(uVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x18)" ( (binary_expression "uVar8 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" if (parenthesized_expression "(pfVar5 != (float *)0x0)" ( (binary_expression "pfVar5 != (float *)0x0" identifier != (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" { (expression_statement "iVar2 = *(int *)(uVar8 + 0x18);" (assignment_expression "iVar2 = *(int *)(uVar8 + 0x18)" identifier = (pointer_expression "*(int *)(uVar8 + 0x18)" * (cast_expression "(int *)(uVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x18)" ( (binary_expression "uVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" { (expression_statement "iVar7 = *(int *)(uVar8 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(uVar8 + 0x2c0)" identifier = (pointer_expression "*(int *)(uVar8 + 0x2c0)" * (cast_expression "(int *)(uVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x2c0)" ( (binary_expression "uVar8 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);" do (compound_statement "{\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            }" { (if_statement "if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);" (assignment_expression "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(puVar1 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(puVar1 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a50)" ( (binary_expression "puVar1 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = *(int **)(uVar8 + 0x2d0);" (assignment_expression "piVar9 = *(int **)(uVar8 + 0x2d0)" identifier = (pointer_expression "*(int **)(uVar8 + 0x2d0)" * (cast_expression "(int **)(uVar8 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x2d0)" ( (binary_expression "uVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "pfVar13 = pfVar5;" (assignment_expression "pfVar13 = pfVar5" identifier = identifier) ;) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" identifier = identifier) ;) (do_statement "do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);" do (compound_statement "{\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                }" { (if_statement "if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" if (parenthesized_expression "((piVar9[*piVar14 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar9[*piVar14 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar9[*piVar14 * 3 + 1] & 2U)" ( (binary_expression "piVar9[*piVar14 * 3 + 1] & 2U" (subscript_expression "piVar9[*piVar14 * 3 + 1]" identifier [ (binary_expression "*piVar14 * 3 + 1" (binary_expression "*piVar14 * 3" (pointer_expression "*piVar14" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" { (expression_statement "fVar27 = *pfVar13;" (assignment_expression "fVar27 = *pfVar13" identifier = (pointer_expression "*pfVar13" * identifier)) ;) (expression_statement "dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);" (assignment_expression "dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,uVar11)" ( identifier , identifier ))))) ;) (if_statement "if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" if (parenthesized_expression "((float)uVar23 <= fVar27)" ( (binary_expression "(float)uVar23 <= fVar27" (cast_expression "(float)uVar23" ( (type_descriptor "float" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }" { (if_statement "if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" if (parenthesized_expression "(fVar27 < (float)uVar25)" ( (binary_expression "fVar27 < (float)uVar25" identifier < (cast_expression "(float)uVar25" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" { (if_statement "if (fVar27 <= (float)uVar23) goto LAB_0003e980;" if (parenthesized_expression "(fVar27 <= (float)uVar23)" ( (binary_expression "fVar27 <= (float)uVar23" identifier <= (cast_expression "(float)uVar23" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003e980;" goto statement_identifier ;)) (expression_statement "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" identifier = (binary_expression "((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "((double)fVar27 * dVar20)" ( (binary_expression "(double)fVar27 * dVar20" (cast_expression "(double)fVar27" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) )))))) ;) }) (else_clause "else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" else (compound_statement "{\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" { (expression_statement "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" identifier = (binary_expression "(dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "(dVar19 * dVar20)" ( (binary_expression "dVar19 * dVar20" identifier * identifier) )) / (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) )))))) ;) }))) (if_statement "if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" if (parenthesized_expression "(dVar26 <= dVar22)" ( (binary_expression "dVar26 <= dVar22" identifier <= identifier) )) (compound_statement "{\n                        uVar29 = 0xffffffffffffffff;\n                      }" { (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" else (compound_statement "{\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" { (expression_statement "uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);" (assignment_expression "uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar22 + dVar18)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar22 + dVar18)" ( (binary_expression "dVar22 + dVar18" identifier + identifier) )))) ;) }))) (expression_statement "uVar6 = (uint)((ulonglong)uVar29 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar29 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar29 >> 0x20)" ( (binary_expression "(ulonglong)uVar29 >> 0x20" (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar27 = (float)uVar24;" (assignment_expression "fVar27 = (float)uVar24" identifier = (cast_expression "(float)uVar24" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" if (parenthesized_expression "((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11))))" ( (binary_expression "(uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" (parenthesized_expression "(uVar6 <= uVar10)" ( (binary_expression "uVar6 <= uVar10" identifier <= identifier) )) && (parenthesized_expression "((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" ( (parenthesized_expression "(uVar6 != uVar10 || ((uint)uVar29 <= uVar11))" ( (binary_expression "uVar6 != uVar10 || ((uint)uVar29 <= uVar11)" (binary_expression "uVar6 != uVar10" identifier != identifier) || (parenthesized_expression "((uint)uVar29 <= uVar11)" ( (binary_expression "(uint)uVar29 <= uVar11" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) ))) )) ))) )) (compound_statement "{\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" { (expression_statement "dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);" (assignment_expression "dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,(uint)uVar29)" ( identifier , (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (goto_statement "goto joined_r0x0003e958;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" else (compound_statement "{\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" { (labeled_statement "LAB_0003e980:\n                      dVar22 = 0.0;" statement_identifier : (expression_statement "dVar22 = 0.0;" (assignment_expression "dVar22 = 0.0" identifier = number_literal) ;)) (labeled_statement "joined_r0x0003e958:\n                      dVar21 = dVar16;" statement_identifier : (expression_statement "dVar21 = dVar16;" (assignment_expression "dVar21 = dVar16" identifier = identifier) ;)) (if_statement "if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }" if (parenthesized_expression "(dVar15 <= dVar20)" ( (binary_expression "dVar15 <= dVar20" identifier <= identifier) )) (compound_statement "{\n                        dVar21 = dVar17 / dVar20;\n                      }" { (expression_statement "dVar21 = dVar17 / dVar20;" (assignment_expression "dVar21 = dVar17 / dVar20" identifier = (binary_expression "dVar17 / dVar20" identifier / identifier)) ;) })) (expression_statement "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));" (assignment_expression "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" identifier = (cast_expression "(float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" ( (binary_expression "dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58)" (binary_expression "dVar21 * dVar22" identifier * identifier) * (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "*pfVar13 = fVar27;" (assignment_expression "*pfVar13 = fVar27" (pointer_expression "*pfVar13" * identifier) = identifier) ;) })) (expression_statement "piVar14 = piVar14 + 3;" (assignment_expression "piVar14 = piVar14 + 3" identifier = (binary_expression "piVar14 + 3" identifier + number_literal)) ;) (expression_statement "pfVar13 = pfVar13 + 1;" (assignment_expression "pfVar13 = pfVar13 + 1" identifier = (binary_expression "pfVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar14 != piVar9 + iVar7 * 3)" ( (binary_expression "piVar14 != piVar9 + iVar7 * 3" identifier != (binary_expression "piVar9 + iVar7 * 3" identifier + (binary_expression "iVar7 * 3" identifier * number_literal))) )) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" identifier = (binary_expression "pfVar5 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 != iVar2)" ( (binary_expression "iVar12 != iVar2" identifier != identifier) )) ;) })) (expression_statement "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);" (assignment_expression "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003e8d8;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003e8d8;" goto statement_identifier ;)) })) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0003e8d8:\n      local_90 = local_90 + 1;" statement_identifier : (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar28 != local_90)" ( (binary_expression "iVar28 != local_90" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void SetImageDepth._omp_fn.4(anon_struct_24_5_83ffb101 * param_0) */\n\nvoid __thiscall SetImageDepth__omp_fn_4(void *this)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  iVar8 = *(int *)((int)this + 8);\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(iVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(iVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n                    /* WARNING: Load size is inaccurate */\n    uVar10 = *this;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = *(uint *)((int)this + 4);\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = *(undefined4 *)((int)this + 0x10);\n    uVar4 = *(undefined4 *)((int)this + 0xc);\n    do {\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall SetImageDepth__omp_fn_4(void *this)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  iVar8 = *(int *)((int)this + 8);\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(iVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(iVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n                    /* WARNING: Load size is inaccurate */\n    uVar10 = *this;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = *(uint *)((int)this + 4);\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = *(undefined4 *)((int)this + 0x10);\n    uVar4 = *(undefined4 *)((int)this + 0xc);\n    do {\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "SetImageDepth__omp_fn_4(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  iVar8 = *(int *)((int)this + 8);\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(iVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(iVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n                    /* WARNING: Load size is inaccurate */\n    uVar10 = *this;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = *(uint *)((int)this + 4);\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = *(undefined4 *)((int)this + 0x10);\n    uVar4 = *(undefined4 *)((int)this + 0xc);\n    do {\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "float *pfVar5;" primitive_type (pointer_declarator "*pfVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float *pfVar13;" primitive_type (pointer_declarator "*pfVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (declaration "double dVar21;" primitive_type identifier ;) (declaration "double dVar22;" primitive_type identifier ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "ulonglong uVar24;" type_identifier identifier ;) (declaration "ulonglong uVar25;" type_identifier identifier ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "undefined8 uVar29;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (expression_statement "iVar8 = *(int *)((int)this + 8);" (assignment_expression "iVar8 = *(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 "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (local_90 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 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 "iVar28 = *(int *)(iVar8 + 0x1c) / local_90;" (assignment_expression "iVar28 = *(int *)(iVar8 + 0x1c) / local_90" identifier = (binary_expression "*(int *)(iVar8 + 0x1c) / local_90" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "local_90 = *(int *)(iVar8 + 0x1c) % local_90;" (assignment_expression "local_90 = *(int *)(iVar8 + 0x1c) % local_90" identifier = (binary_expression "*(int *)(iVar8 + 0x1c) % local_90" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" if (parenthesized_expression "(iVar2 < local_90)" ( (binary_expression "iVar2 < local_90" identifier < identifier) )) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" { (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) })) (expression_statement "local_90 = iVar28 * iVar2 + local_90;" (assignment_expression "local_90 = iVar28 * iVar2 + local_90" identifier = (binary_expression "iVar28 * iVar2 + local_90" (binary_expression "iVar28 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + local_90;" (assignment_expression "iVar28 = iVar28 + local_90" identifier = (binary_expression "iVar28 + local_90" identifier + identifier)) ;) (if_statement "if (local_90 < iVar28) {\n                    /* WARNING: Load size is inaccurate */\n    uVar10 = *this;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = *(uint *)((int)this + 4);\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = *(undefined4 *)((int)this + 0x10);\n    uVar4 = *(undefined4 *)((int)this + 0xc);\n    do {\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" if (parenthesized_expression "(local_90 < iVar28)" ( (binary_expression "local_90 < iVar28" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n    uVar10 = *this;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = *(uint *)((int)this + 4);\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = *(undefined4 *)((int)this + 0x10);\n    uVar4 = *(undefined4 *)((int)this + 0xc);\n    do {\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" { comment (expression_statement "uVar10 = *this;" (assignment_expression "uVar10 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)((int)this + 4);" (assignment_expression "uVar11 = *(uint *)((int)this + 4)" identifier = (pointer_expression "*(uint *)((int)this + 4)" * (cast_expression "(uint *)((int)this + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 4)" ( (binary_expression "(int)this + 4" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a68)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a68)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a68" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)((int)this + 0x10);" (assignment_expression "uVar3 = *(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 "uVar4 = *(undefined4 *)((int)this + 0xc);" (assignment_expression "uVar4 = *(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) ))))) ;) (do_statement "do {\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);" do (compound_statement "{\n      if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    }" { (if_statement "if (*(int *)((int)this + 0x14) != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }" if (parenthesized_expression "(*(int *)((int)this + 0x14) != 0)" ( (binary_expression "*(int *)((int)this + 0x14) != 0" (pointer_expression "*(int *)((int)this + 0x14)" * (cast_expression "(int *)((int)this + 0x14)" ( (type_descriptor "int *" primitive_type (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) )))) != number_literal) )) (compound_statement "{\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        *(undefined4 *)((int)this + 0x14) = 0;\n      }" { (expression_statement "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4);" (assignment_expression "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4)" identifier = (cast_expression "(float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,0,local_90,*(undefined4 *)(iVar8 + 0x18),1,uVar4)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" if (parenthesized_expression "(pfVar5 != (float *)0x0)" ( (binary_expression "pfVar5 != (float *)0x0" identifier != (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar2 = *(int *)(iVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" { (expression_statement "iVar2 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar2 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar2) {\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n            iVar7 = *(int *)(iVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" { (expression_statement "iVar7 = *(int *)(iVar8 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(iVar8 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);" do (compound_statement "{\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            }" { (if_statement "if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(iVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);" (assignment_expression "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(puVar1 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(puVar1 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a50)" ( (binary_expression "puVar1 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = *(int **)(iVar8 + 0x2d0);" (assignment_expression "piVar9 = *(int **)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar8 + 0x2d0)" * (cast_expression "(int **)(iVar8 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "pfVar13 = pfVar5;" (assignment_expression "pfVar13 = pfVar5" identifier = identifier) ;) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" identifier = identifier) ;) (do_statement "do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);" do (compound_statement "{\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                }" { (if_statement "if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" if (parenthesized_expression "((piVar9[*piVar14 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar9[*piVar14 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar9[*piVar14 * 3 + 1] & 2U)" ( (binary_expression "piVar9[*piVar14 * 3 + 1] & 2U" (subscript_expression "piVar9[*piVar14 * 3 + 1]" identifier [ (binary_expression "*piVar14 * 3 + 1" (binary_expression "*piVar14 * 3" (pointer_expression "*piVar14" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" { (expression_statement "fVar27 = *pfVar13;" (assignment_expression "fVar27 = *pfVar13" identifier = (pointer_expression "*pfVar13" * identifier)) ;) (expression_statement "dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11);" (assignment_expression "dVar20 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11)" identifier = (cast_expression "(double)(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatundidf_003a8960)(uVar10,uVar11)" (parenthesized_expression "(*(code *)PTR___floatundidf_003a8960)" ( (pointer_expression "*(code *)PTR___floatundidf_003a8960" * (cast_expression "(code *)PTR___floatundidf_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,uVar11)" ( identifier , identifier ))))) ;) (if_statement "if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" if (parenthesized_expression "((float)uVar23 <= fVar27)" ( (binary_expression "(float)uVar23 <= fVar27" (cast_expression "(float)uVar23" ( (type_descriptor "float" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }" { (if_statement "if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" if (parenthesized_expression "(fVar27 < (float)uVar25)" ( (binary_expression "fVar27 < (float)uVar25" identifier < (cast_expression "(float)uVar25" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" { (if_statement "if (fVar27 <= (float)uVar23) goto LAB_0003e980;" if (parenthesized_expression "(fVar27 <= (float)uVar23)" ( (binary_expression "fVar27 <= (float)uVar23" identifier <= (cast_expression "(float)uVar23" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003e980;" goto statement_identifier ;)) (expression_statement "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" identifier = (binary_expression "((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "((double)fVar27 * dVar20)" ( (binary_expression "(double)fVar27 * dVar20" (cast_expression "(double)fVar27" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) )))))) ;) }) (else_clause "else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" else (compound_statement "{\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" { (expression_statement "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" identifier = (binary_expression "(dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "(dVar19 * dVar20)" ( (binary_expression "dVar19 * dVar20" identifier * identifier) )) / (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) )))))) ;) }))) (if_statement "if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }" if (parenthesized_expression "(dVar26 <= dVar22)" ( (binary_expression "dVar26 <= dVar22" identifier <= identifier) )) (compound_statement "{\n                        uVar29 = 0xffffffffffffffff;\n                      }" { (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }" else (compound_statement "{\n                        uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);\n                      }" { (expression_statement "uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18);" (assignment_expression "uVar29 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18)" identifier = (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar22 + dVar18)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar22 + dVar18)" ( (binary_expression "dVar22 + dVar18" identifier + identifier) )))) ;) }))) (expression_statement "uVar6 = (uint)((ulonglong)uVar29 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar29 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar29 >> 0x20)" ( (binary_expression "(ulonglong)uVar29 >> 0x20" (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar27 = (float)uVar24;" (assignment_expression "fVar27 = (float)uVar24" identifier = (cast_expression "(float)uVar24" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" if (parenthesized_expression "((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11))))" ( (binary_expression "(uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" (parenthesized_expression "(uVar6 <= uVar10)" ( (binary_expression "uVar6 <= uVar10" identifier <= identifier) )) && (parenthesized_expression "((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" ( (parenthesized_expression "(uVar6 != uVar10 || ((uint)uVar29 <= uVar11))" ( (binary_expression "uVar6 != uVar10 || ((uint)uVar29 <= uVar11)" (binary_expression "uVar6 != uVar10" identifier != identifier) || (parenthesized_expression "((uint)uVar29 <= uVar11)" ( (binary_expression "(uint)uVar29 <= uVar11" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) ))) )) ))) )) (compound_statement "{\n                        dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" { (expression_statement "dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29);" (assignment_expression "dVar22 = (double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29)" identifier = (cast_expression "(double)(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatundidf_003a8960)(uVar6,(uint)uVar29)" (parenthesized_expression "(*(code *)PTR___floatundidf_003a8960)" ( (pointer_expression "*(code *)PTR___floatundidf_003a8960" * (cast_expression "(code *)PTR___floatundidf_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,(uint)uVar29)" ( identifier , (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (goto_statement "goto joined_r0x0003e958;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" else (compound_statement "{\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" { (labeled_statement "LAB_0003e980:\n                      dVar22 = 0.0;" statement_identifier : (expression_statement "dVar22 = 0.0;" (assignment_expression "dVar22 = 0.0" identifier = number_literal) ;)) (labeled_statement "joined_r0x0003e958:\n                      dVar21 = dVar16;" statement_identifier : (expression_statement "dVar21 = dVar16;" (assignment_expression "dVar21 = dVar16" identifier = identifier) ;)) (if_statement "if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }" if (parenthesized_expression "(dVar15 <= dVar20)" ( (binary_expression "dVar15 <= dVar20" identifier <= identifier) )) (compound_statement "{\n                        dVar21 = dVar17 / dVar20;\n                      }" { (expression_statement "dVar21 = dVar17 / dVar20;" (assignment_expression "dVar21 = dVar17 / dVar20" identifier = (binary_expression "dVar17 / dVar20" identifier / identifier)) ;) })) (expression_statement "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));" (assignment_expression "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" identifier = (cast_expression "(float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" ( (binary_expression "dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58)" (binary_expression "dVar21 * dVar22" identifier * identifier) * (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "*pfVar13 = fVar27;" (assignment_expression "*pfVar13 = fVar27" (pointer_expression "*pfVar13" * identifier) = identifier) ;) })) (expression_statement "piVar14 = piVar14 + 3;" (assignment_expression "piVar14 = piVar14 + 3" identifier = (binary_expression "piVar14 + 3" identifier + number_literal)) ;) (expression_statement "pfVar13 = pfVar13 + 1;" (assignment_expression "pfVar13 = pfVar13 + 1" identifier = (binary_expression "pfVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar14 != piVar9 + iVar7 * 3)" ( (binary_expression "piVar14 != piVar9 + iVar7 * 3" identifier != (binary_expression "piVar9 + iVar7 * 3" identifier + (binary_expression "iVar7 * 3" identifier * number_literal))) )) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" identifier = (binary_expression "pfVar5 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 != iVar2)" ( (binary_expression "iVar12 != iVar2" identifier != identifier) )) ;) })) (expression_statement "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);" (assignment_expression "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003e8d8;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003e8d8;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)((int)this + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x14) = 0" (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) )))) = number_literal) ;) })) (labeled_statement "LAB_0003e8d8:\n      local_90 = local_90 + 1;" statement_identifier : (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar28 != local_90)" ( (binary_expression "iVar28 != local_90" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0003e614(uint *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0003e614(uint *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0003e614(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "float *pfVar5;" primitive_type (pointer_declarator "*pfVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float *pfVar13;" primitive_type (pointer_declarator "*pfVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (declaration "double dVar21;" primitive_type identifier ;) (declaration "double dVar22;" primitive_type identifier ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "ulonglong uVar24;" type_identifier identifier ;) (declaration "ulonglong uVar25;" type_identifier identifier ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "undefined8 uVar29;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (expression_statement "uVar8 = param_1[2];" (assignment_expression "uVar8 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (local_90 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 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 "iVar28 = *(int *)(uVar8 + 0x1c) / local_90;" (assignment_expression "iVar28 = *(int *)(uVar8 + 0x1c) / local_90" identifier = (binary_expression "*(int *)(uVar8 + 0x1c) / local_90" (pointer_expression "*(int *)(uVar8 + 0x1c)" * (cast_expression "(int *)(uVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x1c)" ( (binary_expression "uVar8 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "local_90 = *(int *)(uVar8 + 0x1c) % local_90;" (assignment_expression "local_90 = *(int *)(uVar8 + 0x1c) % local_90" identifier = (binary_expression "*(int *)(uVar8 + 0x1c) % local_90" (pointer_expression "*(int *)(uVar8 + 0x1c)" * (cast_expression "(int *)(uVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x1c)" ( (binary_expression "uVar8 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" if (parenthesized_expression "(iVar2 < local_90)" ( (binary_expression "iVar2 < local_90" identifier < identifier) )) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" { (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) })) (expression_statement "local_90 = iVar28 * iVar2 + local_90;" (assignment_expression "local_90 = iVar28 * iVar2 + local_90" identifier = (binary_expression "iVar28 * iVar2 + local_90" (binary_expression "iVar28 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + local_90;" (assignment_expression "iVar28 = iVar28 + local_90" identifier = (binary_expression "iVar28 + local_90" identifier + identifier)) ;) (if_statement "if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" if (parenthesized_expression "(local_90 < iVar28)" ( (binary_expression "local_90 < iVar28" identifier < identifier) )) (compound_statement "{\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_1[1];" (assignment_expression "uVar11 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a68)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a68)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a68" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = param_1[4];" (assignment_expression "uVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[3];" (assignment_expression "uVar4 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);" do (compound_statement "{\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    }" { (if_statement "if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }" if (parenthesized_expression "(param_1[5] != 0)" ( (binary_expression "param_1[5] != 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }" { (expression_statement "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);" (assignment_expression "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" identifier = (cast_expression "(float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(uVar8 + 0x18)" * (cast_expression "(undefined4 *)(uVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x18)" ( (binary_expression "uVar8 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" if (parenthesized_expression "(pfVar5 != (float *)0x0)" ( (binary_expression "pfVar5 != (float *)0x0" identifier != (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" { (expression_statement "iVar2 = *(int *)(uVar8 + 0x18);" (assignment_expression "iVar2 = *(int *)(uVar8 + 0x18)" identifier = (pointer_expression "*(int *)(uVar8 + 0x18)" * (cast_expression "(int *)(uVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x18)" ( (binary_expression "uVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" { (expression_statement "iVar7 = *(int *)(uVar8 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(uVar8 + 0x2c0)" identifier = (pointer_expression "*(int *)(uVar8 + 0x2c0)" * (cast_expression "(int *)(uVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x2c0)" ( (binary_expression "uVar8 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);" do (compound_statement "{\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            }" { (if_statement "if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);" (assignment_expression "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(puVar1 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(puVar1 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a50)" ( (binary_expression "puVar1 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = *(int **)(uVar8 + 0x2d0);" (assignment_expression "piVar9 = *(int **)(uVar8 + 0x2d0)" identifier = (pointer_expression "*(int **)(uVar8 + 0x2d0)" * (cast_expression "(int **)(uVar8 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x2d0)" ( (binary_expression "uVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "pfVar13 = pfVar5;" (assignment_expression "pfVar13 = pfVar5" identifier = identifier) ;) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" identifier = identifier) ;) (do_statement "do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);" do (compound_statement "{\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                }" { (if_statement "if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" if (parenthesized_expression "((piVar9[*piVar14 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar9[*piVar14 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar9[*piVar14 * 3 + 1] & 2U)" ( (binary_expression "piVar9[*piVar14 * 3 + 1] & 2U" (subscript_expression "piVar9[*piVar14 * 3 + 1]" identifier [ (binary_expression "*piVar14 * 3 + 1" (binary_expression "*piVar14 * 3" (pointer_expression "*piVar14" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" { (expression_statement "fVar27 = *pfVar13;" (assignment_expression "fVar27 = *pfVar13" identifier = (pointer_expression "*pfVar13" * identifier)) ;) (expression_statement "dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);" (assignment_expression "dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,uVar11)" ( identifier , identifier ))))) ;) (if_statement "if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" if (parenthesized_expression "((float)uVar23 <= fVar27)" ( (binary_expression "(float)uVar23 <= fVar27" (cast_expression "(float)uVar23" ( (type_descriptor "float" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }" { (if_statement "if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" if (parenthesized_expression "(fVar27 < (float)uVar25)" ( (binary_expression "fVar27 < (float)uVar25" identifier < (cast_expression "(float)uVar25" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" { (if_statement "if (fVar27 <= (float)uVar23) goto LAB_0003e980;" if (parenthesized_expression "(fVar27 <= (float)uVar23)" ( (binary_expression "fVar27 <= (float)uVar23" identifier <= (cast_expression "(float)uVar23" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003e980;" goto statement_identifier ;)) (expression_statement "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" identifier = (binary_expression "((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "((double)fVar27 * dVar20)" ( (binary_expression "(double)fVar27 * dVar20" (cast_expression "(double)fVar27" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) )))))) ;) }) (else_clause "else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" else (compound_statement "{\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" { (expression_statement "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" identifier = (binary_expression "(dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "(dVar19 * dVar20)" ( (binary_expression "dVar19 * dVar20" identifier * identifier) )) / (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) )))))) ;) }))) (if_statement "if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" if (parenthesized_expression "(dVar26 <= dVar22)" ( (binary_expression "dVar26 <= dVar22" identifier <= identifier) )) (compound_statement "{\n                        uVar29 = 0xffffffffffffffff;\n                      }" { (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" else (compound_statement "{\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" { (expression_statement "uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);" (assignment_expression "uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar22 + dVar18)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar22 + dVar18)" ( (binary_expression "dVar22 + dVar18" identifier + identifier) )))) ;) }))) (expression_statement "uVar6 = (uint)((ulonglong)uVar29 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar29 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar29 >> 0x20)" ( (binary_expression "(ulonglong)uVar29 >> 0x20" (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar27 = (float)uVar24;" (assignment_expression "fVar27 = (float)uVar24" identifier = (cast_expression "(float)uVar24" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" if (parenthesized_expression "((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11))))" ( (binary_expression "(uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" (parenthesized_expression "(uVar6 <= uVar10)" ( (binary_expression "uVar6 <= uVar10" identifier <= identifier) )) && (parenthesized_expression "((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" ( (parenthesized_expression "(uVar6 != uVar10 || ((uint)uVar29 <= uVar11))" ( (binary_expression "uVar6 != uVar10 || ((uint)uVar29 <= uVar11)" (binary_expression "uVar6 != uVar10" identifier != identifier) || (parenthesized_expression "((uint)uVar29 <= uVar11)" ( (binary_expression "(uint)uVar29 <= uVar11" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) ))) )) ))) )) (compound_statement "{\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" { (expression_statement "dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);" (assignment_expression "dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,(uint)uVar29)" ( identifier , (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (goto_statement "goto joined_r0x0003e958;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" else (compound_statement "{\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" { (labeled_statement "LAB_0003e980:\n                      dVar22 = 0.0;" statement_identifier : (expression_statement "dVar22 = 0.0;" (assignment_expression "dVar22 = 0.0" identifier = number_literal) ;)) (labeled_statement "joined_r0x0003e958:\n                      dVar21 = dVar16;" statement_identifier : (expression_statement "dVar21 = dVar16;" (assignment_expression "dVar21 = dVar16" identifier = identifier) ;)) (if_statement "if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }" if (parenthesized_expression "(dVar15 <= dVar20)" ( (binary_expression "dVar15 <= dVar20" identifier <= identifier) )) (compound_statement "{\n                        dVar21 = dVar17 / dVar20;\n                      }" { (expression_statement "dVar21 = dVar17 / dVar20;" (assignment_expression "dVar21 = dVar17 / dVar20" identifier = (binary_expression "dVar17 / dVar20" identifier / identifier)) ;) })) (expression_statement "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));" (assignment_expression "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" identifier = (cast_expression "(float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" ( (binary_expression "dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58)" (binary_expression "dVar21 * dVar22" identifier * identifier) * (pointer_expression "*(double *)(puVar1 + 0x1a58)" * (cast_expression "(double *)(puVar1 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1a58)" ( (binary_expression "puVar1 + 0x1a58" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "*pfVar13 = fVar27;" (assignment_expression "*pfVar13 = fVar27" (pointer_expression "*pfVar13" * identifier) = identifier) ;) })) (expression_statement "piVar14 = piVar14 + 3;" (assignment_expression "piVar14 = piVar14 + 3" identifier = (binary_expression "piVar14 + 3" identifier + number_literal)) ;) (expression_statement "pfVar13 = pfVar13 + 1;" (assignment_expression "pfVar13 = pfVar13 + 1" identifier = (binary_expression "pfVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar14 != piVar9 + iVar7 * 3)" ( (binary_expression "piVar14 != piVar9 + iVar7 * 3" identifier != (binary_expression "piVar9 + iVar7 * 3" identifier + (binary_expression "iVar7 * 3" identifier * number_literal))) )) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" identifier = (binary_expression "pfVar5 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 != iVar2)" ( (binary_expression "iVar12 != iVar2" identifier != identifier) )) ;) })) (expression_statement "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);" (assignment_expression "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003e8d8;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003e8d8;" goto statement_identifier ;)) })) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0003e8d8:\n      local_90 = local_90 + 1;" statement_identifier : (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar28 != local_90)" ( (binary_expression "iVar28 != local_90" 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_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 ( )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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) ))))) ;) (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT * IDENT) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0003e614(uint *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0003e614(uint *param_1)" (identifier "FUN_0003e614") (parameter_list "(uint *param_1)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  float *pfVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  int *piVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  double dVar22;\n  undefined8 uVar23;\n  ulonglong uVar24;\n  ulonglong uVar25;\n  double dVar26;\n  float fVar27;\n  int iVar28;\n  undefined8 uVar29;\n  int local_90;\n  \n  uVar8 = param_1[2];\n  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (local_90 == 0) {\n    trap(7);\n  }\n  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;\n  local_90 = *(int *)(uVar8 + 0x1c) % local_90;\n  if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }\n  local_90 = iVar28 * iVar2 + local_90;\n  iVar28 = iVar28 + local_90;\n  if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "float *pfVar5;" (primitive_type "float") (pointer_declarator "*pfVar5" (* "*") (identifier "pfVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "float *pfVar13;" (primitive_type "float") (pointer_declarator "*pfVar13" (* "*") (identifier "pfVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "double dVar15;" (primitive_type "double") (identifier "dVar15") (; ";")) (declaration "double dVar16;" (primitive_type "double") (identifier "dVar16") (; ";")) (declaration "double dVar17;" (primitive_type "double") (identifier "dVar17") (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "double dVar19;" (primitive_type "double") (identifier "dVar19") (; ";")) (declaration "double dVar20;" (primitive_type "double") (identifier "dVar20") (; ";")) (declaration "double dVar21;" (primitive_type "double") (identifier "dVar21") (; ";")) (declaration "double dVar22;" (primitive_type "double") (identifier "dVar22") (; ";")) (declaration "undefined8 uVar23;" (type_identifier "undefined8") (identifier "uVar23") (; ";")) (declaration "ulonglong uVar24;" (type_identifier "ulonglong") (identifier "uVar24") (; ";")) (declaration "ulonglong uVar25;" (type_identifier "ulonglong") (identifier "uVar25") (; ";")) (declaration "double dVar26;" (primitive_type "double") (identifier "dVar26") (; ";")) (declaration "float fVar27;" (primitive_type "float") (identifier "fVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "undefined8 uVar29;" (type_identifier "undefined8") (identifier "uVar29") (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (expression_statement "uVar8 = param_1[2];" (assignment_expression "uVar8 = param_1[2]" (identifier "uVar8") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)()" (identifier "local_90") (= "=") (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" (( "(") (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" (* "*") (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_num_threads_003a990c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003a9508"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_90 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (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 "iVar28 = *(int *)(uVar8 + 0x1c) / local_90;" (assignment_expression "iVar28 = *(int *)(uVar8 + 0x1c) / local_90" (identifier "iVar28") (= "=") (binary_expression "*(int *)(uVar8 + 0x1c) / local_90" (pointer_expression "*(int *)(uVar8 + 0x1c)" (* "*") (cast_expression "(int *)(uVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x1c)" (( "(") (binary_expression "uVar8 + 0x1c" (identifier "uVar8") (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "local_90"))) (; ";")) (expression_statement "local_90 = *(int *)(uVar8 + 0x1c) % local_90;" (assignment_expression "local_90 = *(int *)(uVar8 + 0x1c) % local_90" (identifier "local_90") (= "=") (binary_expression "*(int *)(uVar8 + 0x1c) % local_90" (pointer_expression "*(int *)(uVar8 + 0x1c)" (* "*") (cast_expression "(int *)(uVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x1c)" (( "(") (binary_expression "uVar8 + 0x1c" (identifier "uVar8") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "local_90"))) (; ";")) (if_statement "if (iVar2 < local_90) {\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" (if "if") (parenthesized_expression "(iVar2 < local_90)" (( "(") (binary_expression "iVar2 < local_90" (identifier "iVar2") (< "<") (identifier "local_90")) () ")")) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    local_90 = 0;\n  }" ({ "{") (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_90 = iVar28 * iVar2 + local_90;" (assignment_expression "local_90 = iVar28 * iVar2 + local_90" (identifier "local_90") (= "=") (binary_expression "iVar28 * iVar2 + local_90" (binary_expression "iVar28 * iVar2" (identifier "iVar28") (* "*") (identifier "iVar2")) (+ "+") (identifier "local_90"))) (; ";")) (expression_statement "iVar28 = iVar28 + local_90;" (assignment_expression "iVar28 = iVar28 + local_90" (identifier "iVar28") (= "=") (binary_expression "iVar28 + local_90" (identifier "iVar28") (+ "+") (identifier "local_90"))) (; ";")) (if_statement "if (local_90 < iVar28) {\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" (if "if") (parenthesized_expression "(local_90 < iVar28)" (( "(") (binary_expression "local_90 < iVar28" (identifier "local_90") (< "<") (identifier "iVar28")) () ")")) (compound_statement "{\n    uVar10 = *param_1;\n    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n    uVar11 = param_1[1];\n    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);\n    uVar3 = param_1[4];\n    uVar4 = param_1[3];\n    do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);\n  }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" (identifier "dVar15") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x13f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x13f8")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_1[1];" (assignment_expression "uVar11 = param_1[1]" (identifier "uVar11") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68)" (identifier "dVar16") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a68)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a68)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a68)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a68" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a68")) () ")"))))) (; ";")) (expression_statement "uVar3 = param_1[4];" (assignment_expression "uVar3 = param_1[4]" (identifier "uVar3") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar4 = param_1[3];" (assignment_expression "uVar4 = param_1[3]" (identifier "uVar4") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (do_statement "do {\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    } while (iVar28 != local_90);" (do "do") (compound_statement "{\n      if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }\nLAB_0003e8d8:\n      local_90 = local_90 + 1;\n    }" ({ "{") (if_statement "if (param_1[5] != 0) {\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }" (if "if") (parenthesized_expression "(param_1[5] != 0)" (( "(") (binary_expression "param_1[5] != 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);\n        puVar1 = PTR_LAB_003a88e0;\n        if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }\n        param_1[5] = 0;\n      }" ({ "{") (expression_statement "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);" (assignment_expression "pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" (identifier "pfVar5") (= "=") (cast_expression "(float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" (* "*") (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewAuthenticPixels_003a964c"))) () ")")) (argument_list "(uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") (, ",") (identifier "local_90") (, ",") (pointer_expression "*(undefined4 *)(uVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(uVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x18)" (( "(") (binary_expression "uVar8 + 0x18" (identifier "uVar8") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar4") () ")"))))) (; ";")) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" (identifier "puVar1") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (if_statement "if (pfVar5 != (float *)0x0) {\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" (if "if") (parenthesized_expression "(pfVar5 != (float *)0x0)" (( "(") (binary_expression "pfVar5 != (float *)0x0" (identifier "pfVar5") (!= "!=") (cast_expression "(float *)0x0" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar2 = *(int *)(uVar8 + 0x18);\n          if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);\n          if (iVar2 != 0) goto LAB_0003e8d8;\n        }" ({ "{") (expression_statement "iVar2 = *(int *)(uVar8 + 0x18);" (assignment_expression "iVar2 = *(int *)(uVar8 + 0x18)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(uVar8 + 0x18)" (* "*") (cast_expression "(int *)(uVar8 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x18)" (( "(") (binary_expression "uVar8 + 0x18" (identifier "uVar8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (0 < iVar2) {\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" (if "if") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n            iVar7 = *(int *)(uVar8 + 0x2c0);\n            iVar12 = 0;\n            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n            do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);\n          }" ({ "{") (expression_statement "iVar7 = *(int *)(uVar8 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(uVar8 + 0x2c0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(uVar8 + 0x2c0)" (* "*") (cast_expression "(int *)(uVar8 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x2c0)" (( "(") (binary_expression "uVar8 + 0x2c0" (identifier "uVar8") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar17") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "uVar25") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a60" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a60")) () ")"))))) (; ";")) (expression_statement "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar18") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" (identifier "dVar19") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a58" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (do_statement "do {\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar12 != iVar2);" (do "do") (compound_statement "{\n              if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }\n              iVar12 = iVar12 + 1;\n              pfVar5 = pfVar5 + iVar7;\n            }" ({ "{") (if_statement "if (0 < iVar7) {\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" (if "if") (parenthesized_expression "(0 < iVar7)" (( "(") (binary_expression "0 < iVar7" (number_literal "0") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n                uVar23 = 0;\n                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);\n                piVar9 = *(int **)(uVar8 + 0x2d0);\n                pfVar13 = pfVar5;\n                piVar14 = piVar9;\n                do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);\n              }" ({ "{") (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);" (assignment_expression "uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50)" (identifier "uVar24") (= "=") (binary_expression "(ulonglong)*(uint *)(puVar1 + 0x1a50)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(puVar1 + 0x1a50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1a50)" (( "(") (binary_expression "puVar1 + 0x1a50" (identifier "puVar1") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "piVar9 = *(int **)(uVar8 + 0x2d0);" (assignment_expression "piVar9 = *(int **)(uVar8 + 0x2d0)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(uVar8 + 0x2d0)" (* "*") (cast_expression "(int **)(uVar8 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar8 + 0x2d0)" (( "(") (binary_expression "uVar8 + 0x2d0" (identifier "uVar8") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "pfVar13 = pfVar5;" (assignment_expression "pfVar13 = pfVar5" (identifier "pfVar13") (= "=") (identifier "pfVar5")) (; ";")) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" (identifier "piVar14") (= "=") (identifier "piVar9")) (; ";")) (do_statement "do {\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                } while (piVar14 != piVar9 + iVar7 * 3);" (do "do") (compound_statement "{\n                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }\n                  piVar14 = piVar14 + 3;\n                  pfVar13 = pfVar13 + 1;\n                }" ({ "{") (if_statement "if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" (if "if") (parenthesized_expression "((piVar9[*piVar14 * 3 + 1] & 2U) != 0)" (( "(") (binary_expression "(piVar9[*piVar14 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar9[*piVar14 * 3 + 1] & 2U)" (( "(") (binary_expression "piVar9[*piVar14 * 3 + 1] & 2U" (subscript_expression "piVar9[*piVar14 * 3 + 1]" (identifier "piVar9") ([ "[") (binary_expression "*piVar14 * 3 + 1" (binary_expression "*piVar14 * 3" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (& "&") (number_literal "2U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    fVar27 = *pfVar13;\n                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);\n                    if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }\n                    *pfVar13 = fVar27;\n                  }" ({ "{") (expression_statement "fVar27 = *pfVar13;" (assignment_expression "fVar27 = *pfVar13" (identifier "fVar27") (= "=") (pointer_expression "*pfVar13" (* "*") (identifier "pfVar13"))) (; ";")) (expression_statement "dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);" (assignment_expression "dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" (identifier "dVar20") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_003a8960)(uVar10,uVar11)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8960" (* "*") (cast_expression "(code *)PTR_FUN_003a8960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8960"))) () ")")) (argument_list "(uVar10,uVar11)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar11") () ")"))))) (; ";")) (if_statement "if ((float)uVar23 <= fVar27) {\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }\n                    else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" (if "if") (parenthesized_expression "((float)uVar23 <= fVar27)" (( "(") (binary_expression "(float)uVar23 <= fVar27" (cast_expression "(float)uVar23" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar23")) (<= "<=") (identifier "fVar27")) () ")")) (compound_statement "{\n                      if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }\n                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);\n                      fVar27 = (float)uVar24;\n                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }\n                    }" ({ "{") (if_statement "if (fVar27 < (float)uVar25) {\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }\n                      else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" (if "if") (parenthesized_expression "(fVar27 < (float)uVar25)" (( "(") (binary_expression "fVar27 < (float)uVar25" (identifier "fVar27") (< "<") (cast_expression "(float)uVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar25"))) () ")")) (compound_statement "{\n                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;\n                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" ({ "{") (if_statement "if (fVar27 <= (float)uVar23) goto LAB_0003e980;" (if "if") (parenthesized_expression "(fVar27 <= (float)uVar23)" (( "(") (binary_expression "fVar27 <= (float)uVar23" (identifier "fVar27") (<= "<=") (cast_expression "(float)uVar23" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar23"))) () ")")) (goto_statement "goto LAB_0003e980;" (goto "goto") (statement_identifier "LAB_0003e980") (; ";"))) (expression_statement "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" (identifier "dVar22") (= "=") (binary_expression "((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "((double)fVar27 * dVar20)" (( "(") (binary_expression "(double)fVar27 * dVar20" (cast_expression "(double)fVar27" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar27")) (* "*") (identifier "dVar20")) () ")")) (/ "/") (pointer_expression "*(double *)(puVar1 + 0x1a58)" (* "*") (cast_expression "(double *)(puVar1 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1a58)" (( "(") (binary_expression "puVar1 + 0x1a58" (identifier "puVar1") (+ "+") (number_literal "0x1a58")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" (else "else") (compound_statement "{\n                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);\n                      }" ({ "{") (expression_statement "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);" (assignment_expression "dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" (identifier "dVar22") (= "=") (binary_expression "(dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58)" (parenthesized_expression "(dVar19 * dVar20)" (( "(") (binary_expression "dVar19 * dVar20" (identifier "dVar19") (* "*") (identifier "dVar20")) () ")")) (/ "/") (pointer_expression "*(double *)(puVar1 + 0x1a58)" (* "*") (cast_expression "(double *)(puVar1 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1a58)" (( "(") (binary_expression "puVar1 + 0x1a58" (identifier "puVar1") (+ "+") (number_literal "0x1a58")) () ")")))))) (; ";")) (} "}")))) (if_statement "if (dVar26 <= dVar22) {\n                        uVar29 = 0xffffffffffffffff;\n                      }\n                      else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" (if "if") (parenthesized_expression "(dVar26 <= dVar22)" (( "(") (binary_expression "dVar26 <= dVar22" (identifier "dVar26") (<= "<=") (identifier "dVar22")) () ")")) (compound_statement "{\n                        uVar29 = 0xffffffffffffffff;\n                      }" ({ "{") (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" (identifier "uVar29") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")) (else_clause "else {\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" (else "else") (compound_statement "{\n                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);\n                      }" ({ "{") (expression_statement "uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);" (assignment_expression "uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18)" (identifier "uVar29") (= "=") (call_expression "(*(code *)PTR_FUN_003a8954)(dVar22 + dVar18)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar22 + dVar18)" (( "(") (binary_expression "dVar22 + dVar18" (identifier "dVar22") (+ "+") (identifier "dVar18")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar6 = (uint)((ulonglong)uVar29 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar29 >> 0x20)" (identifier "uVar6") (= "=") (call_expression "(uint)((ulonglong)uVar29 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar29 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar29 >> 0x20" (cast_expression "(ulonglong)uVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "fVar27 = (float)uVar24;" (assignment_expression "fVar27 = (float)uVar24" (identifier "fVar27") (= "=") (cast_expression "(float)uVar24" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar24"))) (; ";")) (if_statement "if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" (if "if") (parenthesized_expression "((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11))))" (( "(") (binary_expression "(uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" (parenthesized_expression "(uVar6 <= uVar10)" (( "(") (binary_expression "uVar6 <= uVar10" (identifier "uVar6") (<= "<=") (identifier "uVar10")) () ")")) (&& "&&") (parenthesized_expression "((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))" (( "(") (parenthesized_expression "(uVar6 != uVar10 || ((uint)uVar29 <= uVar11))" (( "(") (binary_expression "uVar6 != uVar10 || ((uint)uVar29 <= uVar11)" (binary_expression "uVar6 != uVar10" (identifier "uVar6") (!= "!=") (identifier "uVar10")) (|| "||") (parenthesized_expression "((uint)uVar29 <= uVar11)" (( "(") (binary_expression "(uint)uVar29 <= uVar11" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (<= "<=") (identifier "uVar11")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);\n                        goto joined_r0x0003e958;\n                      }" ({ "{") (expression_statement "dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);" (assignment_expression "dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" (identifier "dVar22") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8960" (* "*") (cast_expression "(code *)PTR_FUN_003a8960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8960"))) () ")")) (argument_list "(uVar6,(uint)uVar29)" (( "(") (identifier "uVar6") (, ",") (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x0003e958;" (goto "goto") (statement_identifier "joined_r0x0003e958") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" (else "else") (compound_statement "{\nLAB_0003e980:\n                      dVar22 = 0.0;\njoined_r0x0003e958:\n                      dVar21 = dVar16;\n                      if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }\n                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));\n                    }" ({ "{") (labeled_statement "LAB_0003e980:\n                      dVar22 = 0.0;" (statement_identifier "LAB_0003e980") (: ":") (expression_statement "dVar22 = 0.0;" (assignment_expression "dVar22 = 0.0" (identifier "dVar22") (= "=") (number_literal "0.0")) (; ";"))) (labeled_statement "joined_r0x0003e958:\n                      dVar21 = dVar16;" (statement_identifier "joined_r0x0003e958") (: ":") (expression_statement "dVar21 = dVar16;" (assignment_expression "dVar21 = dVar16" (identifier "dVar21") (= "=") (identifier "dVar16")) (; ";"))) (if_statement "if (dVar15 <= dVar20) {\n                        dVar21 = dVar17 / dVar20;\n                      }" (if "if") (parenthesized_expression "(dVar15 <= dVar20)" (( "(") (binary_expression "dVar15 <= dVar20" (identifier "dVar15") (<= "<=") (identifier "dVar20")) () ")")) (compound_statement "{\n                        dVar21 = dVar17 / dVar20;\n                      }" ({ "{") (expression_statement "dVar21 = dVar17 / dVar20;" (assignment_expression "dVar21 = dVar17 / dVar20" (identifier "dVar21") (= "=") (binary_expression "dVar17 / dVar20" (identifier "dVar17") (/ "/") (identifier "dVar20"))) (; ";")) (} "}"))) (expression_statement "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));" (assignment_expression "fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" (identifier "fVar27") (= "=") (cast_expression "(float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58))" (( "(") (binary_expression "dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58)" (binary_expression "dVar21 * dVar22" (identifier "dVar21") (* "*") (identifier "dVar22")) (* "*") (pointer_expression "*(double *)(puVar1 + 0x1a58)" (* "*") (cast_expression "(double *)(puVar1 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1a58)" (( "(") (binary_expression "puVar1 + 0x1a58" (identifier "puVar1") (+ "+") (number_literal "0x1a58")) () ")"))))) () ")")))) (; ";")) (} "}")))) (expression_statement "*pfVar13 = fVar27;" (assignment_expression "*pfVar13 = fVar27" (pointer_expression "*pfVar13" (* "*") (identifier "pfVar13")) (= "=") (identifier "fVar27")) (; ";")) (} "}"))) (expression_statement "piVar14 = piVar14 + 3;" (assignment_expression "piVar14 = piVar14 + 3" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 3" (identifier "piVar14") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pfVar13 = pfVar13 + 1;" (assignment_expression "pfVar13 = pfVar13 + 1" (identifier "pfVar13") (= "=") (binary_expression "pfVar13 + 1" (identifier "pfVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar14 != piVar9 + iVar7 * 3)" (( "(") (binary_expression "piVar14 != piVar9 + iVar7 * 3" (identifier "piVar14") (!= "!=") (binary_expression "piVar9 + iVar7 * 3" (identifier "piVar9") (+ "+") (binary_expression "iVar7 * 3" (identifier "iVar7") (* "*") (number_literal "3")))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" (identifier "pfVar5") (= "=") (binary_expression "pfVar5 + iVar7" (identifier "pfVar5") (+ "+") (identifier "iVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != iVar2)" (( "(") (binary_expression "iVar12 != iVar2" (identifier "iVar12") (!= "!=") (identifier "iVar2")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);" (assignment_expression "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)" (( "(") (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" (* "*") (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SyncCacheViewAuthenticPixels_003a94f8"))) () ")")) (argument_list "(uVar3,uVar4)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0003e8d8;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003e8d8;" (goto "goto") (statement_identifier "LAB_0003e8d8") (; ";"))) (} "}"))) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_0003e8d8:\n      local_90 = local_90 + 1;" (statement_identifier "LAB_0003e8d8") (: ":") (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" (identifier "local_90") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar28 != local_90)" (( "(") (binary_expression "iVar28 != local_90" (identifier "iVar28") (!= "!=") (identifier "local_90")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void SetImageDepth._omp_fn.4(anon_struct_24_5_83ffb101 * param_0) */

void __thiscall function_1(void *this)

{
  type_1 *var_9;
  int var_4;
  type_2 uVar3;
  type_2 uVar4;
  float *var_7;
  type_3 var_16;
  int var_8;
  int var_3;
  int *var_24;
  type_3 var_17;
  type_3 var_18;
  int var_25;
  float *var_23;
  int *var_22;
  double var_19;
  double dVar16;
  double var_20;
  double var_15;
  double var_12;
  double var_11;
  double var_21;
  double var_14;
  type_4 uVar23;
  type_5 uVar24;
  type_5 uVar25;
  double var_13;
  float var_10;
  int var_5;
  type_4 uVar29;
  int var_1;
  
  var_3 = *(int *)((int)this + 8);
  var_1 = (*(type_6 *)PTR_omp_get_num_threads_003a990c)();
  var_4 = (*(type_6 *)PTR_omp_get_thread_num_003a9508)();
  if (var_1 == 0) {
    var_2(7);
  }
  var_5 = *(int *)(var_3 + 0x1c) / var_1;
  var_1 = *(int *)(var_3 + 0x1c) % var_1;
  if (var_4 < var_1) {
    var_5 = var_5 + 1;
    var_1 = 0;
  }
  var_1 = var_5 * var_4 + var_1;
  var_5 = var_5 + var_1;
  if (var_1 < var_5) {
                    /* WARNING: Load size is inaccurate */
    var_17 = *this;
    var_19 = *(double *)(var_6 + 0x13f8);
    var_18 = *(type_3 *)((int)this + 4);
    dVar16 = *(double *)(var_6 + 0x1a68);
    uVar3 = *(type_2 *)((int)this + 0x10);
    uVar4 = *(type_2 *)((int)this + 0xc);
    do {
      if (*(int *)((int)this + 0x14) != 0) {
        var_7 = (float *)(*(type_6 *)PTR_GetCacheViewAuthenticPixels_003a964c)
                                    (uVar3,0,var_1,*(type_2 *)(var_3 + 0x18),1,uVar4);
        var_9 = var_6;
        if (var_7 != (float *)0x0) {
          var_4 = *(int *)(var_3 + 0x18);
          if (0 < var_4) {
            var_8 = *(int *)(var_3 + 0x2c0);
            var_25 = 0;
            var_20 = *(double *)(var_6 + 0x1438);
            uVar25 = (type_5)*(type_3 *)(var_6 + 0x1a50);
            var_13 = *(double *)(var_6 + 0x1a60);
            var_15 = *(double *)(var_6 + 0x1400);
            var_12 = *(double *)(var_6 + 0x1a58);
            do {
              if (0 < var_8) {
                uVar23 = 0;
                uVar24 = (type_5)*(type_3 *)(var_9 + 0x1a50);
                var_24 = *(int **)(var_3 + 0x2d0);
                var_23 = var_7;
                var_22 = var_24;
                do {
                  if ((var_24[*var_22 * 3 + 1] & 2U) != 0) {
                    var_10 = *var_23;
                    var_11 = (double)(*(type_6 *)PTR___floatundidf_003a8960)(var_17,var_18);
                    if ((float)uVar23 <= var_10) {
                      if (var_10 < (float)uVar25) {
                        if (var_10 <= (float)uVar23) goto LAB_0003e980;
                        var_14 = ((double)var_10 * var_11) / *(double *)(var_9 + 0x1a58);
                      }
                      else {
                        var_14 = (var_12 * var_11) / *(double *)(var_9 + 0x1a58);
                      }
                      if (var_13 <= var_14) {
                        uVar29 = 0xffffffffffffffff;
                      }
                      else {
                        uVar29 = (*(type_6 *)PTR___fixunsdfdi_003a8954)(var_14 + var_15);
                      }
                      var_16 = (type_3)((type_5)uVar29 >> 0x20);
                      var_10 = (float)uVar24;
                      if ((var_16 <= var_17) && ((var_16 != var_17 || ((type_3)uVar29 <= var_18)))) {
                        var_14 = (double)(*(type_6 *)PTR___floatundidf_003a8960)(var_16,(type_3)uVar29);
                        goto joined_r0x0003e958;
                      }
                    }
                    else {
LAB_0003e980:
                      var_14 = 0.0;
joined_r0x0003e958:
                      var_21 = dVar16;
                      if (var_19 <= var_11) {
                        var_21 = var_20 / var_11;
                      }
                      var_10 = (float)(var_21 * var_14 * *(double *)(var_9 + 0x1a58));
                    }
                    *var_23 = var_10;
                  }
                  var_22 = var_22 + 3;
                  var_23 = var_23 + 1;
                } while (var_22 != var_24 + var_8 * 3);
              }
              var_25 = var_25 + 1;
              var_7 = var_7 + var_8;
            } while (var_25 != var_4);
          }
          var_4 = (*(type_6 *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);
          if (var_4 != 0) goto LAB_0003e8d8;
        }
        *(type_2 *)((int)this + 0x14) = 0;
      }
LAB_0003e8d8:
      var_1 = var_1 + 1;
    } while (var_5 != var_1);
  }
  return;
}


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

void MASKED(uint *param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  float *pfVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  int *piVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  float *pfVar13;
  int *piVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  double dVar19;
  double dVar20;
  double dVar21;
  double dVar22;
  undefined8 uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  double dVar26;
  float fVar27;
  int iVar28;
  undefined8 uVar29;
  int local_90;
  
  uVar8 = param_1[2];
  local_90 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (local_90 == 0) {
    trap(7);
  }
  iVar28 = *(int *)(uVar8 + 0x1c) / local_90;
  local_90 = *(int *)(uVar8 + 0x1c) % local_90;
  if (iVar2 < local_90) {
    iVar28 = iVar28 + 1;
    local_90 = 0;
  }
  local_90 = iVar28 * iVar2 + local_90;
  iVar28 = iVar28 + local_90;
  if (local_90 < iVar28) {
    uVar10 = *param_1;
    dVar15 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);
    uVar11 = param_1[1];
    dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1a68);
    uVar3 = param_1[4];
    uVar4 = param_1[3];
    do {
      if (param_1[5] != 0) {
        pfVar5 = (float *)(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                                    (uVar3,0,local_90,*(undefined4 *)(uVar8 + 0x18),1,uVar4);
        puVar1 = PTR_LAB_003a88e0;
        if (pfVar5 != (float *)0x0) {
          iVar2 = *(int *)(uVar8 + 0x18);
          if (0 < iVar2) {
            iVar7 = *(int *)(uVar8 + 0x2c0);
            iVar12 = 0;
            dVar17 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
            uVar25 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
            dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
            dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
            dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
            do {
              if (0 < iVar7) {
                uVar23 = 0;
                uVar24 = (ulonglong)*(uint *)(puVar1 + 0x1a50);
                piVar9 = *(int **)(uVar8 + 0x2d0);
                pfVar13 = pfVar5;
                piVar14 = piVar9;
                do {
                  if ((piVar9[*piVar14 * 3 + 1] & 2U) != 0) {
                    fVar27 = *pfVar13;
                    dVar20 = (double)(*(code *)PTR_FUN_003a8960)(uVar10,uVar11);
                    if ((float)uVar23 <= fVar27) {
                      if (fVar27 < (float)uVar25) {
                        if (fVar27 <= (float)uVar23) goto LAB_0003e980;
                        dVar22 = ((double)fVar27 * dVar20) / *(double *)(puVar1 + 0x1a58);
                      }
                      else {
                        dVar22 = (dVar19 * dVar20) / *(double *)(puVar1 + 0x1a58);
                      }
                      if (dVar26 <= dVar22) {
                        uVar29 = 0xffffffffffffffff;
                      }
                      else {
                        uVar29 = (*(code *)PTR_FUN_003a8954)(dVar22 + dVar18);
                      }
                      uVar6 = (uint)((ulonglong)uVar29 >> 0x20);
                      fVar27 = (float)uVar24;
                      if ((uVar6 <= uVar10) && ((uVar6 != uVar10 || ((uint)uVar29 <= uVar11)))) {
                        dVar22 = (double)(*(code *)PTR_FUN_003a8960)(uVar6,(uint)uVar29);
                        goto joined_r0x0003e958;
                      }
                    }
                    else {
LAB_0003e980:
                      dVar22 = 0.0;
joined_r0x0003e958:
                      dVar21 = dVar16;
                      if (dVar15 <= dVar20) {
                        dVar21 = dVar17 / dVar20;
                      }
                      fVar27 = (float)(dVar21 * dVar22 * *(double *)(puVar1 + 0x1a58));
                    }
                    *pfVar13 = fVar27;
                  }
                  piVar14 = piVar14 + 3;
                  pfVar13 = pfVar13 + 1;
                } while (piVar14 != piVar9 + iVar7 * 3);
              }
              iVar12 = iVar12 + 1;
              pfVar5 = pfVar5 + iVar7;
            } while (iVar12 != iVar2);
          }
          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar3,uVar4);
          if (iVar2 != 0) goto LAB_0003e8d8;
        }
        param_1[5] = 0;
      }
LAB_0003e8d8:
      local_90 = local_90 + 1;
    } while (iVar28 != local_90);
  }
  return;
}

